وِکیٖپیٖڈیا
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.8
first-letter
میڈیا
خاص
کَتھ
رُکُن
رُکُن کَتھ
وِکیٖپیٖڈیا
وِکیٖپیٖڈیا کَتھ
فَیِل
فَیِل کَتھ
میٖڈیاوِکی
میٖڈیاوِکی کَتھ
فرما
فرما کَتھ
مَدَتھ
مَدَتھ کَتھ
زٲژ
زٲژ کَتھ
TimedText
TimedText talk
Module
Module talk
Event
Event talk
ترٛام
0
3417
142893
142400
2026-06-25T18:05:05Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142893
wikitext
text/x-wiki
{{Infobox element|color=#cdeeff}}[[فَیِل:NatCopper.jpg|thumb|ترٛام]]
[[فَیِل:Tinned_Copper_Wire_anaglyph.jpg|thumb]]
'''ترٛام''' ({{IPA-ks|traːm}}) چھُ اَکھ [[رساێن تۄتھ]] تہٕ [[داتھ]] یَتھ [[اَنٛگریٖزی زَبان]] مَنٛز ''' Copper ''' چھِ ونان۔ ییٚمیوٚک نِشانہٕ چھُ "''' Cu '''"، زَرٕ گٔنزٛرُن چھِ اَمیوٚک ۲۹۔ اَمِچ صلٲحِیَت چھےٚ واریاہ، مِثالے یہِ چھُ نَرَم، یہِ چھِ ہَؠکان سٔتُر کٔرِتھ، بِجلی تَارَن مَنٛز ہَؠکان تبدیٖل کٔرِتھ، اَتھ چھِ واریاہ گَرَم گژھٕنٔچ تہٕ بِجلی پَکنآونٕچ صلٲحِیَت تہِ۔ اَوٕ موٗجوٗب چھِ یہِ یِوان اِستِمال کرنہٕ بِجلی تہٕ گَرَم یا پِغلاؤنہٕ کھٲترٕ۔ اَمہِ عَلاوٕ چھُ یہِ تٲمیٖراتن تہٕ بیترِ چیٖز بناونَس کھٲترٕ تہِ اِستِمال سَپدَان۔ یہِ چھُ تِمن دھاتن مَنٛز شٲمِل یِمہٕ زَن قدٕرَتی طورَن پؠٹھ اِستِمال چھِ سَپدان۔ اَمیوٚک اِستِمال چھُ اوس مُت سَپدان بروٚنٛہہ کالہٕ پؠٚٹھَے، ییٚلہِ زَن وَنٕنَس مَنٛز چھُ آمُت دَہ (۱۰) ساس(۱۰۰۰۰) ؤرِی برونٛہہ۔<ref>{{ویب حَوالہٕ|title=Definition of COPPER|url=https://www.merriam-webster.com/dictionary/copper|access-date=2021-11-30|website=www.merriam-webster.com|language=en}}</ref>
== خصوٗصِیَت ==
=== ظٲہری ===
ترٛام، [[رۄپھ]] تہٕ [[سۄن|سۄٚن]] چھ ۱۱ مِس صَفس مَنٛز۔
== حَوالہٕ ==
{{حَوالہٕ}}
{{نامُکَمَل مَضموٗن}}
[[زٲژ:داتھ]]
[[زٲژ:رساێن تۄتھ]]
57izog53cvojzp97ibhgo11j9i0rk6z
وِکیٖپیٖڈیا:چوک
4
5904
142801
142368
2026-06-25T13:29:39Z
MediaWiki message delivery
3853
/* Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki */ نٔو حِصہٕ
142801
wikitext
text/x-wiki
__NEWSECTIONLINK__
__NOTOC__
<div style="border:1px #FFFFFF solid; overflow:auto;">
<h2 style="display: block; margin: 0; border: 0; padding: .4em .5em .2em; background-color: #d1e4ff; font-weight: bold; text-align: center;">
کٲشرِ وِکیٖپیٖڈیا چوکِ پؠٹھ خٲر مَقدَم۔
</h2> <!-- 3 line spacing of h2 is important for subsection edit links to work correctly, PLEASE DO NOT FIX -->
<div style="margin-top:2em; border:1px #FFFFFF solid; text-align:center;">
<h2 style="display: block; margin: 0; border: 0; padding: .4em .5em .2em; background-color: #d1e4ff; font-weight: bold;">
کَتھ باتھ
</h2> <!-- 3 line spacing of h2 is important for subsection edit links to work correctly, PLEASE DO NOT FIX -->
{| class="wikitable" style="margin-center:auto; margin-right:auto; margin-bottom:0;"
| style="width:20%; vertical-align:top; padding-top: .5em;" |[[File:WP teahouse logo.png|link=Wikipedia:Teahouse|center|x45px]]<big>'''[[Wikipedia: چاے جاے|چاے جاے]]'''</big><br />اکھ مِلَن سار جاے ییٚتِؠتھ تُہؠ ہیکو پَنٕنؠ سَوال پرٕٛژھِت
|}
{{اؠسَمبَلی|plain=yes|grey=yes|other=no|icon-size=x45px}}</div>
<div style="margin-top:2em; border:1px #FFFFFF solid; text-align:center;">
<h2 style="display: block; margin: 0 0 .75em; border: 0; padding: .4em .5em .2em; background-color: #d1e4ff; font-weight: bold;">
نٕو عَوٲمی پٲغام
</h2> <!-- 3 line spacing of h2 is important for subsection edit links to work correctly, PLEASE DO NOT FIX -->
<div style="margin-top:.01em; border:1px #FFFFFF solid; text-align:center;">
<h2 style="display: block; margin: 0 0 .75em; border: 0; padding: .4em .5em .2em; background-color: #d1e48f; font-weight: small;">
<center/>{{Auto-archive|archive_after_last_comment=7d|archive_to_subpage=مَحفوٗظ خانہٕ %3}}<center>
</h2> <!-- 3 line spacing of h2 is important for subsection edit links to work correctly, PLEASE DO NOT FIX -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Movement Strategy and Governance News – Issue 7</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="msg-newsletter"/>
<div style = "line-height: 1.2">
<span style="font-size:200%;">'''Movement Strategy and Governance News'''</span><br>
<span style="font-size:120%; color:#404040;">'''Issue 7, July-September 2022'''</span><span style="font-size:120%; float:right;">[[m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7|'''Read the full newsletter''']]</span>
----
Welcome to the 7th issue of Movement Strategy and Governance News! The newsletter distributes relevant news and events about the implementation of Wikimedia's [[:m:Special:MyLanguage/Movement Strategy/Initiatives|Movement Strategy recommendations]], other relevant topics regarding Movement governance, as well as different projects and activities supported by the Movement Strategy and Governance (MSG) team of the Wikimedia Foundation.
The MSG Newsletter is delivered quarterly, while the more frequent [[:m:Special:MyLanguage/Movement Strategy/Updates|Movement Strategy Weekly]] will be delivered weekly. Please remember to subscribe [[m:Special:MyLanguage/Global message delivery/Targets/MSG Newsletter Subscription|here]] if you would like to receive future issues of this newsletter.
</div><div style="margin-top:3px; padding:10px 10px 10px 20px; background:#fffff; border:2px solid #808080; border-radius:4px; font-size:100%;">
* '''Movement sustainability''': Wikimedia Foundation's annual sustainability report has been published. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A1|continue reading]])
* '''Improving user experience''': recent improvements on the desktop interface for Wikimedia projects. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A2|continue reading]])
* '''Safety and inclusion''': updates on the revision process of the Universal Code of Conduct Enforcement Guidelines. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A3|continue reading]])
* '''Equity in decisionmaking''': reports from Hubs pilots conversations, recent progress from the Movement Charter Drafting Committee, and a new white paper for futures of participation in the Wikimedia movement. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A4|continue reading]])
* '''Stakeholders coordination''': launch of a helpdesk for Affiliates and volunteer communities working on content partnership. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A5|continue reading]])
* '''Leadership development''': updates on leadership projects by Wikimedia movement organizers in Brazil and Cape Verde. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A6|continue reading]])
* '''Internal knowledge management''': launch of a new portal for technical documentation and community resources. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A7|continue reading]])
* '''Innovate in free knowledge''': high-quality audiovisual resources for scientific experiments and a new toolkit to record oral transcripts. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A8|continue reading]])
* '''Evaluate, iterate, and adapt''': results from the Equity Landscape project pilot ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A9|continue reading]])
* '''Other news and updates''': a new forum to discuss Movement Strategy implementation, upcoming Wikimedia Foundation Board of Trustees election, a new podcast to discuss Movement Strategy, and change of personnel for the Foundation's Movement Strategy and Governance team. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A10|continue reading]])
</div><section end="msg-newsletter"/>
</div>
Thank you for reading! [[User:RamzyM (WMF)|RamzyM (WMF)]] 01:37, 18 جُلے 2022 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23529147 -->
== Announcing the six candidates for the 2022 Board of Trustees election ==
<section begin="announcement-content"/>
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election| You can find this message translated into additional languages on Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Hi everyone,
'''The Affiliate voting process has concluded.''' Representatives from each Affiliate organization learned about the candidates by reading candidates’ statements, reviewing candidates’ answers to questions, and considering the candidates’ ratings provided by the Analysis Committee. The selected 2022 Board of Trustees candidates are:
* Tobechukwu Precious Friday ([[:m:User:Tochiprecious|Tochiprecious]])
* Farah Jack Mustaklem ([[:m:User:Fjmustak|Fjmustak]])
* Shani Evenstein Sigalov ([[:m:User:Esh77|Esh77]])
* Kunal Mehta ([[:m:User:Legoktm|Legoktm]])
* Michał Buczyński ([[:m:User:Aegis Maelstrom|Aegis Maelstrom]])
* Mike Peel ([[:m:User:Mike Peel|Mike Peel]])
You may see more information about the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Results|Results]] and [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Stats|Statistics]] of this Board election.
Please take a moment to appreciate the Affiliate Representatives and Analysis Committee members for taking part in this process and helping to grow the Board of Trustees in capacity and diversity. These hours of volunteer work connect us across understanding and perspective. Thank you for your participation.
Thank you to the community members who put themselves forward as candidates for the Board of Trustees. Considering joining the Board of Trustees is no small decision. The time and dedication candidates have shown to this point speaks to their commitment to this movement. Congratulations to those candidates who have been selected. A great amount of appreciation and gratitude for those candidates not selected. Please continue to share your leadership with Wikimedia.
Thank you to those who followed the Affiliate process for this Board election. You may review the results of the Affiliate selection process.
'''The next part of the Board election process is the community voting period.''' [[m:Special:MyLanguage/Wikimedia Foundation elections/2022#Timeline|You may view the Board election timeline here]]. To prepare for the community voting period, there are several things community members can engage with in the following ways:
* [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|Read candidates’ statements]] and read the candidates’ answers to the questions posed by the Affiliate Representatives.
* [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Community_Voting/Questions_for_Candidates|Propose and select the 6 questions for candidates to answer during their video Q&A]].
* See the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|Analysis Committee’s ratings of candidates on each candidate’s statement]].
* [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Community Voting/Election Compass|Propose statements for the Election Compass]] voters can use to find which candidates best fit their principles.
* Encourage others in your community to take part in the election.
Best,
Movement Strategy and Governance
''This message was sent on behalf of the Board Selection Task Force and the Elections Committee''
</div><section end="announcement-content"/>
[[User:MNadzikiewicz (WMF)|MNadzikiewicz (WMF)]] 14:03, 27 جُلے 2022 (UTC)
<!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23530132 -->
== Vote for Election Compass Statements ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Vote for Election Compass Statements| You can find this message translated into additional languages on Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Vote for Election Compass Statements|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/Vote for Election Compass Statements}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Hi all,
Volunteers in the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022|2022 Board of Trustees election]] are invited to [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Community_Voting/Election_Compass/Statements|vote for statements to use in the Election Compass]]. You can vote for the statements you would like to see included in the Election Compass on Meta-wiki.
An Election Compass is a tool to help voters select the candidates that best align with their beliefs and views. The community members will propose statements for the candidates to answer using a Lickert scale (agree/neutral/disagree). The candidates’ answers to the statements will be loaded into the Election Compass tool. Voters will use the tool by entering in their answer to the statements (agree/disagree/neutral). The results will show the candidates that best align with the voter’s beliefs and views.
Here is the timeline for the Election Compass:
*<s>July 8 - 20: Volunteers propose statements for the Election Compass</s>
*<s>July 21 - 22: Elections Committee reviews statements for clarity and removes off-topic statements</s>
*July 23 - August 1: Volunteers vote on the statements
*August 2 - 4: Elections Committee selects the top 15 statements
*August 5 - 12: candidates align themselves with the statements
*August 15: The Election Compass opens for voters to use to help guide their voting decision
The Elections Committee will select the top 15 statements at the beginning of August
Best,
Movement Strategy and Governance
''This message was sent on behalf of the Board Selection Task Force and the Elections Committee''
</div><section end="announcement-content" />
[[User:MNadzikiewicz (WMF)|MNadzikiewicz (WMF)]] 21:01, 27 جُلے 2022 (UTC)
<!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23530132 -->
== The 2022 Board of Trustees election Community Voting period is now open ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/The 2022 Board of Trustees election Community Voting period is now open| You can find this message translated into additional languages on Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/The 2022 Board of Trustees election Community Voting period is now open|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/The 2022 Board of Trustees election Community Voting period is now open}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Hi everyone,
The Community Voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022|2022 Board of Trustees election]] is now open. Here are some helpful links to get you the information you need to vote:
* Try the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Community_Voting/Election_Compass|Election Compass]], showing how candidates stand on 15 different topics.
* Read the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|candidate statements]] and [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Affiliate_Organization_Participation/Candidate_Questions|answers to Affiliate questions]]
* [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Apply to be a Candidate|Learn more about the skills the Board seeks]] and how the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|Analysis Committee found candidates align with those skills]]
If you are ready to vote, you may go to [[Special:SecurePoll/vote/Wikimedia_Foundation_Board_Elections_2022|SecurePoll voting page]] to vote now. '''You may vote from August 23 at 00:00 UTC to September 6 at 23:59 UTC.''' To see about your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Voter_eligibility_guidelines|voter eligibility page]].
Best,
Movement Strategy and Governance
''This message was sent on behalf of the Board Selection Task Force and the Elections Committee''<br /><section end="announcement-content" />
[[User:MNadzikiewicz_(WMF)|MNadzikiewicz (WMF)]]
<!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23708360 -->
== Invitation to join the Movement Strategy Forum ==
:''{{More languages}}''
<section begin="announcement-content" />
Hello everyone,
The [https://forum.movement-strategy.org/ Movement Strategy Forum] (MS Forum) is a multilingual collaborative space for all conversations about Movement Strategy implementation.
We are inviting all Movement participants to collaborate on the MS Forum. The goal of the forum is to build community collaboration, using an inclusive multilingual platform.
The [[m:Movement Strategy|Movement Strategy]] is a collaborative effort to imagine and build the future of the Wikimedia Movement. Anyone can contribute to the Movement Strategy, from a comment to a full-time project.
;Join this forum with your Wikimedia account, engage in conversations, and ask questions in your language.
The Movement Strategy and Governance team (MSG) launched the proposal for the MS Forum in May 2022. There was a 2-month community review period, which ended on 24 July 2022. The community review process included several questions that resulted in interesting conversations. You can read the [https://forum.movement-strategy.org/t/ms-forum-community-review-report/1436 Community Review Report].
We look forward to seeing you at the MS Forum!
Best regards,
the Movement Strategy and Governance Team
[[User:MNadzikiewicz (WMF)]] 11:32, 29 اَگَست 2022 (UTC)
<!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23720620 -->
== The Vector 2022 skin as the default in two weeks? ==
<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:Wikimania 2022 Vector (2022) Presentation.pdf|thumb|The slides for our presentation at Wikimania 2022|page=26]]
Hello. I'm writing on behalf of the [[mw:Reading/Web|Wikimedia Foundation Web team]]. '''In two weeks, we would like to make the Vector 2022 skin the default on this wiki.'''
We have been working on it for the past three years. So far, it has been the default on more than 30 wikis, including sister projects, all accounting for more than 1 billion pageviews per month. On average [[phab:T317529#8246686|87% of active logged-in users]] of those wikis use Vector 2022.
It would become the default for all logged-out users, and also all logged-in users who currently use Vector legacy. Logged-in users can at any time switch to [[Special:Preferences#mw-prefsection-rendering|any other skins]]. No changes are expected for users of these skins.
<div style="width:100%; margin:auto;"><gallery widths="220" heights="150" mode="packed" caption="Top of an article">
Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2010 top.png|Vector legacy (current default)
Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2022 top.png|Vector 2022
</gallery><gallery widths="220" heights="150" mode="packed" caption="A section of an article">
Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2010 scrolled.png|Vector legacy (current default)
Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2022 scrolled.png|Vector 2022
</gallery></div>
=== About the skin ===
'''[Why is a change necessary]''' The current default skin meets the needs of the readers and editors as these were 13 years ago. Since then, new users have begun using Wikimedia projects. [https://diff.wikimedia.org/2022/08/18/prioritizing-equity-within-wikipedias-new-desktop/ The old Vector doesn't meet their needs.]
'''[Objective]''' The objective for the new skin is to make the interface more welcoming and comfortable for readers and useful for advanced users. It draws inspiration from previous requests, the [[metawiki:Special:MyLanguage/Community_Wishlist_Survey|Community Wishlist Surveys]], and gadgets and scripts. The work helped our code follow the standards and improve all other skins. [[phab:phame/post/view/290/how_and_why_we_moved_our_skins_to_mustache/|We reduced PHP code in Wikimedia deployed skins by 75%]]. The project has also focused on making it easier to support gadgets and use APIs.
'''[Changes and test results]''' The skin introduces a [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features|series of changes]] that improve readability and usability. The new skin does not remove any functionality currently available on the Vector skin.
* The sticky header makes it easier to find tools that editors use often. It decreases scrolling to the top of the page by 16%.
* The new table of contents makes it easier to navigate to different sections. Readers and editors jumped to different sections of the page 50% more than with the old table of contents. It also looks a bit different on talk pages.
* The new search bar is easier to find and makes it easier to find the correct search result from the list. This increased the amount of searches started by 30% on the wikis we tested on.
* The skin does not negatively affect pageviews, edit rates, or account creation. There is evidence of increases in pageviews and account creation across partner communities.
'''[Try it out]''' Try out the new skin by going to the appearance tab in [[Special:Preferences#mw-prefsection-rendering|your preferences]] and selecting Vector 2022 from the list of skins.
=== How can editors change and customize this skin? ===
It's possible to configure and personalize our changes. We support volunteers who create new gadgets and user scripts. Check out [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Repository|our repository]] for a list of currently available customizations, or add your own.
=== Our plan ===
'''If no large concerns are raised, we plan on deploying in the week of October 3, 2022'''. If your community would like to request more time to discuss the changes, hit the button and write to us. We can adjust the calendar.
<div style="text-align: center;">[[mw:Talk:Reading/Web/Desktop Improvements|<span class="plainlinks mw-ui-button">Request for more time to discuss the change</span>]]</div>
If you'd like ask our team anything, if you have questions, concerns, or additional thoughts, please ping me here or write on the [[mw:Talk:Reading/Web/Desktop Improvements|talk page of the project]]. We will gladly answer! Also, [[mw:Reading/Web/Desktop Improvements/Frequently asked questions|see our FAQ]]. Thank you! [[mw:User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[mw:User talk:SGrabarczuk (WMF)|talk]]) 04:15, 22 سَتَمبَر 2022 (UTC)
</div>
<!-- Message sent by User:SGrabarczuk (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Varia&oldid=23838600 -->
== Update on Vector 2022 ==
[[File:Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2022 scrolled.png|thumb]]
<div lang="en" dir="ltr" class="mw-content-ltr">
Hello. I'm sorry for not communicating in your language. I'll be grateful if you translated my message. I'm writing on behalf of the [[mw:Reading/Web|Web team]] working on the new skin, [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Vector 2022]].
We wanted to apologize for the delays in the deployment of Vector 2022. We know many of you are waiting for this eagerly. We have been delaying the deployment because we have been working on the logos. It has taken us more time than originally expected. Once the logos are ready, we will let you know the exact date of deployment. '''We are planning for either the next (more likely) or the following week'''. If your wiki doesn't currently have a localized logo, we encourage you to [[mw:Talk:Reading/Web/Desktop Improvements|reach out to us]] and we can help make one.
We invite you to [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements#contact|get involved in the project]]. Contact us if you have any questions or need any help, particularly with the compatibility of gadgets and user scripts. Thank you! [[User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[User talk:SGrabarczuk (WMF)|talk]]) 23:24, 19 اَکتوٗبَر 2022 (UTC)
</div>
<!-- Message sent by User:SGrabarczuk (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Varia&oldid=23955535 -->
== Invitation to attend “Ask Me Anything about Movement Charter” Sessions ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Movement Charter/Community Consultation/Announcement/Ask Me Anything Sessions|You can find this message translated into additional languages on Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Movement Charter/Community Consultation/Announcement/Ask Me Anything Sessions|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Community Consultation/Announcement/Ask Me Anything Sessions}}&language=&action=page&filter= {{int:please-translate}}]
Hello all,
During the 2022 Wikimedia Summit, the [[m:Special:MyLanguage/Movement Charter/Drafting Committee|Movement Charter Drafting Committee]] (MCDC) presented the first outline of the Movement Charter, giving a glimpse on the direction of its future work, and the Charter itself. The MCDC then integrated the initial feedback collected during the Summit. Before proceeding with writing the Charter for the whole Movement, the MCDC wants to interact with community members and gather feedback on the drafts of the three sections: Preamble, Values & Principles, and Roles & Responsibilities (intentions statement). The Movement Charter drafts will be available on the Meta page [[m:Special:MyLanguage/Movement Charter/Content|here]] on November 14, 2022. Community wide consultation period on MC will take place from November 20 to December 18, 2022. Learn more about it [[m:Special:MyLanguage/Movement Charter/Community Consultation|here]].
With the goal of ensuring that people are well informed to fully participate in the conversations and are empowered to contribute their perspective on the Movement Charter, three '''“Ask Me Anything about Movement Charter"''' sessions have been scheduled in different time zones. Everyone in the Wikimedia Movement is invited to attend these conversations. The aim is to learn about Movement Charter - its goal, purpose, why it matters, and how it impacts your community. MCDC members will attend these sessions to answer your questions and hear community feedback.
The “Ask Me Anything” sessions accommodate communities from different time zones. Only the presentation of the session is recorded and shared afterwards, no recording of conversations. Below is the list of planned events:
*<s>'''Asia/Pacific''': November 4, 2022 at 09:00 UTC ([https://zonestamp.toolforge.org/1667552400 your local time]). Interpretation is available in Chinese and Japanese.</s>
* '''Europe/MENA/Sub Saharan Africa''': November 12, 2022 at 15:00 UTC ([https://zonestamp.toolforge.org/1668265257 your local time]). Interpretation is available in Arabic, French and Russian.
* '''North and South America/ Western Europe''': November 12, 2022 at 15:00 UTC ([https://zonestamp.toolforge.org/1668265257 your local time]). Interpretation is available in Spanish and Portuguese.
On the [[m:Special:MyLanguage/Movement Charter/Community Consultation|Meta page]] you will find more details; Zoom links will be shared 48 hours ahead of the call.
'''Call for Movement Charter Ambassadors'''
Individuals or groups from all communities who wish to help include and start conversations in their communities on the Movement Charter are encouraged to become [[m:Special:MyLanguage/Movement Strategy and Governance/Movement Charter Ambassadors Program/About|Movement Charter Ambassadors]] (MC Ambassadors). MC Ambassadors will carry out their own activities and get financial support for enabling conversations in their own languages. [[m:Special:MyLanguage/Movement Strategy and Governance/Team|Regional facilitators]] from the Movement Strategy and Governance team are available to support applicants with MC Ambassadors grantmaking. If you are interested please sign up [[m:Special:MyLanguage/Movement Strategy and Governance/Movement Charter Ambassadors Program/About|here]]. Should you have specific questions, please reach out to the MSG team via email: strategy2030@wikimedia.org or on the MS forum.
We thank you for your time and participation.
On behalf of the Movement Charter Drafting Committee,<section end="announcement-content" />
[[User:MNadzikiewicz (WMF)|MNadzikiewicz (WMF)]] 15:33, 7 نَوَمبَر 2022 (UTC)
<!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23914777 -->
== Apply for Funding through the Movement Strategy Community Engagement Package to Support Your Community ==
:''{{More languages}}''
<section begin="announcement-content" />
The Wikimedia Movement Strategy implementation is a collaborative effort for all Wikimedians.
[[m:Special:MyLanguage/Grants:MSIG/About|Movement Strategy Implementation Grants]] support projects that take the current state of a [[m:Special:MyLanguage/Movement Strategy/Initiatives|Movement Strategy Initiative]] and push it one step forward. If you are looking for an example or some guide on how to engage your community further on Movement Strategy and the Movement Strategy Implementation Grants specifically, you may find this '''[[m:Special:MyLanguage/Grants:MSIG/Community Engagement Package|community engagement package]]''' helpful.
The goal of this community engagement package is to support more people to access the funding they might need for the implementation work. By becoming a recipient of this grant, you will be able to support other community members to develop further grant applications that fit with your local contexts to benefit your own communities. With this package, the hope is to break down language barriers and to ensure community members have needed information on Movement Strategy to connect with each other. Movement Strategy is a two-way exchange, we can always learn more from the experiences and knowledge of Wikimedians everywhere. We can train and support our peers by using this package, so more people can make use of this great funding opportunity.
If this information interests you or if you have any further thoughts or questions, please do not hesitate to reach out to us as your [[m:Special:MyLanguage/Movement_Strategy_and_Governance/Team|regional facilitators]] to discuss further. We will be more than happy to support you. When you are ready, follow the steps on [[m:Special:MyLanguage/Grants:MSIG/About |this page]] to apply. We look forward to receiving your application.
Best regards, <br> Movement Strategy and Governance Team <br> Wikimedia Foundation<section end="announcement-content" />
[[User:MNadzikiewicz (WMF)|MNadzikiewicz (WMF)]] 16:26, 14 نَوَمبَر 2022 (UTC)
<!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23914777 -->
== Opportunities open for the Ombuds commission and the Case Review Committee ==
<section begin="announcement-content" />
<div style="margin:.2em 0 .5em;margin-{{#switch:{{PAGELANGUAGE}}|ar|arc|ary|arz|azb|bcc|bgn|ckb|bqi|dv|fa|fa-af|glk|ha-arab|he|kk-arab|kk-cn|ks|ku-arab|ms-arab|mzn|pnb|prd|ps|sd|ug|ur|ydd|yi=right|left}}:3ex;">
[[m:Special:MyLanguage/Wikimedia Foundation Legal department/Announcement/2023 OC and CRC appointments process|''You can find this message translated into additional languages on Meta-wiki.'']]
''<span class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Legal department/Announcement/2023 OC and CRC appointments process|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Legal department/Announcement/2023 OC and CRC appointments process}}&language=&action=page&filter= {{int:please-translate}}]</span>''
</div>
Hi everyone! The Ombuds commission (OC) and the Case Review Committee (CRC) are looking for members. People are encouraged to nominate themselves or encourage others they feel would contribute to these groups to do so. There is more information below about the opportunity and the skills that are needed.
'''About the Ombuds commission'''
The Ombuds commission (OC) works on all Wikimedia projects to investigate complaints about violations of the privacy policy, especially in use of [[m:Special:MyLanguage/CheckUser policy|CheckUser]] and [[m:Special:MyLanguage/Oversight policy|Oversight]] (also known as Suppression) tools. The Commission mediates between the parties of the investigation and, when violations of the policies are identified, advises the Wikimedia Foundation on best handling. They may also assist the General Counsel, the Chief Executive Officer, or the Board of Trustees of the Foundation in these investigations when legally necessary. For more on the OC's duties and roles, '''[[m:Special:MyLanguage/Ombuds commission|see Ombuds commission on Meta-Wiki]]'''.
Volunteers serving in this role should be experienced Wikimedians, active on any project, who have previously used the CheckUser/Oversight tools OR who have the technical ability to understand these tools and the willingness to learn them. They must be able to communicate in English, the common language of the commission. They are expected to be able to engage neutrally in investigating these concerns and to know when to recuse when other roles and relationships may cause conflict. Commissioners will serve '''two-year terms''' (note that this is different from past years, when the terms have been for one year).
'''About the Case Review Committee'''
The Case Review Committee (CRC) reviews appeals of eligible Trust & Safety office actions. The CRC is a critical layer of oversight to ensure that Wikimedia Foundation office actions are fair and unbiased. They also make sure the Wikimedia Foundation doesn’t overstep established practices or boundaries. For more about the role, '''[[m:Special:MyLanguage/Case Review Committee|see Case Review Committee on Meta-Wiki]]'''.
We are looking for current or former functionaries and experienced volunteers with an interest in joining this group. Applicants must be fluent in English (additional languages are a strong plus) and willing to abide by the [[m:Special:MyLanguage/Trust_and_Safety/Case_Review_Committee/Charter|terms of the Committee charter]]. If the work resonates and you qualify, please apply. Committee members will serve '''two-year terms''' (note that this is different from past years, when the terms have been for one year).
'''Applying to join either of these groups'''
Members are required to sign the [[m:Special:MyLanguage/Confidentiality agreement for nonpublic information|Confidentiality agreement for nonpublic information]] and must be willing to comply with the appropriate Wikimedia Foundation board policies (such as the [[m:Special:MyLanguage/Access to nonpublic information policy|access to non-public information policy]] and the [[foundation:Special:MyLanguage/Privacy policy|Foundation privacy policy]]). These positions requires a high degree of discretion and trust. Members must also be over 18 years of age.
'''If you are interested in serving in either capacity listed above,''' please write in English to the Trust and Safety team at ca[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org (to apply to the OC) or to the Legal Team at legal[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org (to apply to the CRC) with information about:
* Your primary projects
* Languages you speak/write
* Any experience you have serving on committees, whether movement or non-movement
* Your thoughts on what you could bring to the OC or CRC if appointed
* Any experience you have with the Checkuser or Oversight tools (OC only)
* Any other information you think is relevant
'''The deadline for applications is 31 December 2022 in any timezone.'''
Please feel free to pass this invitation along to any users who you think may be qualified and interested. Thank you!
On behalf of the Committee Support team,<br /><section end="announcement-content" />
<!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23914777 -->
== مومینٹ چارٹَر کَتھ باتھ مَنٛز گٔژھِو شٲمِل ==
سَلام،
تۄہہِ آسہِ پَتا زِ، مومینٹ چارٹَر ڈرافٹِنگ کٔمِٹی (ایم سی ڈی سی) چھِ بَرادری ہٕنٛز تَجویٖز رَٹان کیٚنٛہہ ڈرافٹَن مُتلِق: یِم چھِ گۄڈٕ کَتھ، "مۄل تہٕ اصوٗل" تہٕ "کِردار تہٕ زِمہٕ دٲری" (مَقصَد جُملہٕ).
أسؠ چھِ یَژھ زِ کٲشِر بَرادری گَژھِ پوٗرٕ پٲٹھؠ اَتھ عَملہِ مَنٛز شٲمِل گَژھِن تہٕ اَتھ مُتلِق راے پیش کَرٕنؠ. اَمہِ کِن چھِ 9 دَسَمبَر 8:00 بَجے پؠٹھ 9:00 بَجے تام اَکھ آنلایِن مُلاکاتھ کَرنُک فٲصلہٕ نِنہٕ آمُت یُس [[گوٗگٕل میٖٹ|گوٗگل میٖٹَس]] پؠٹھ آسہِ. أسؠ چھِ تۄہہِ داوَتھ دِوان اَتھ مَنٛز شٲمِل گَژھنہٕ خٲطرٕ تہٕ پَننؠ راے برٛونٛہہ کُن تھاونہٕ خٲطرٕ!
مومینٹ چارٹَر عُنوانَس مُتلِق ہیٚکِو تۄہہِ، [[:c:File:Ask_Me_Anything_on_Movement_Charter,_Introduction_by_Érica_Azzellini,_English,_Nov_12,_2022.webm|مےٚ پژھِو مومینٹ چارٹَرَس مُتلِق کیٚنٛہہ تہِ]] تہٕ یِم ڈرافٹ پٔرِتھ ([[:m:Movement_Charter/Content/Preamble|گۄڈٕ کَتھ]], [[:m:Movement_Charter/Content/Values_%26_Principles|مۄل تہٕ اصوٗل]], [[:m:Movement_Charter/Content/Roles_%26_Responsibilities|کِردار تہٕ زِمہٕ دٲری]]) کَتھ باتھ برٛونٛہہ.
*'''تٲریٖخ''': 9 دَسَمبَر 8:00 بَجے پؠٹھ 9:00 ہِندوستٲنؠ وَقٕت مُطٲبِق.
*'''لِنک''': [https://meet.google.com/ymq-wbob-vzr یَتھ جاے]
سَوالَن خٲطرٕ ہیٚکِو تۄہہِ ''[[User:511KeV|مےٚ ستؠ کَتھ باتھ کٔرِتھ]]''.
شُکرِیا. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 05:43, 9 دَسَمبَر 2022 (UTC)
== Community Wishlist Survey 2023 opens in January! ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''{{int:Please-translate}}''
{{int:Hello}}
The [[m:Community Wishlist Survey 2023|'''Community Wishlist Survey (CWS) 2023''']], which lets contributors propose and vote for tools and improvements, starts next month on Monday, [https://zonestamp.toolforge.org/1674496831 23 January 2023, at 18:00 UTC] and will continue annually.
We are inviting you to share your ideas for technical improvements to our tools and platforms. Long experience in editing or technical skills is not required. If you have ever used our software and thought of an idea to improve it, this is the place to come share those ideas!
The dates for the phases of the Survey will be as follows:
* Phase 1: Submit, discuss, and revise proposals – Monday, Jan 23, 2023 to Sunday, Feb 6, 2023
* Phase 2: WMF/Community Tech reviews and organizes proposals – Monday, Jan 30, 2023 to Friday, Feb 10, 2023
* Phase 3: Vote on proposals – Friday, Feb 10, 2023 to Friday, Feb 24, 2023
* Phase 4: Results posted – Tuesday, Feb 28, 2023
If you want to start writing out your ideas ahead of the Survey, you can start thinking about your proposals and draft them in [[m:Community Wishlist Survey/Sandbox|the CWS sandbox]].
We are grateful to all who participated last year. See you in January 2023!
</div>
{{int:Feedback-thanks-title}} <bdi lang="en" dir="ltr">Community Tech, [[m:User:STei (WMF)|STei (WMF)]]</bdi> 12:59, 13 دَسَمبَر 2022 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:STei_(WMF)/CWS_2023_List&oldid=24226232 -->
== Vote for your favourite Wikimedia sound logo ==
''{{int:Please-translate}}''
''We are really sorry for posting in English''
[[فَیِل:Sound_Logo_Cover_Image_-_Linkedin.png|center|800x800px]]
Voting in the Wikimedia sound logo contest [[c:Commons:Sound_Logo_Vote|'''has started''']]. From December 6 to 19, 2022, please play a part and help chose the sound that will identify Wikimedia content on audio devices. [[wmfblog:2022/12/06/vote-for-the-sound-of-all-human-knowledge/|Learn more on Diff]].
The sound logo team is grateful to everyone who participated in this global contest. We received 3,235 submissions from 2,094 participants in 135 countries. We are incredibly grateful to the team of [[wmfblog:2022/10/31/screening-3235-sound-submissions/|volunteer screeners]] and the [https://meta.wikimedia.org/wiki/Communications/Sound_Logo/Contest_proposal#How_will_the_final_selection_happen? selection committee] who, among others, helped bring us to where we are today. It is now up to Wikimedia to choose the Sound Of All Human Knowledge.
Best wishes, [[رُکُن:Arupako-WMF|Arupako-WMF]] ([[رُکُن کَتھ:Arupako-WMF|کَتھ صَفہٕ]]) 16:48, 16 دَسَمبَر 2022 (UTC)
== Feminism and Folklore 2023 ==
<div style="border:8px maroon ridge;padding:6px;>
[[File:Feminism and Folklore 2023 logo.svg|centre|550px|frameless]]
::<div lang="en" dir="ltr" class="mw-content-ltr">
<center>''{{int:please-translate}}''</center>
Dear Wiki Community,
Christmas Greetings and a Happy New Year 2023,
You are humbly invited to organize the '''[[:m:Feminism and Folklore 2023|Feminism and Folklore 2023]]''' writing competition from February 1, 2023, to March 31, 2023 on your local Wikipedia. This year, Feminism and Folklore will focus on feminism, women's issues, and gender-focused topics for the project, with a [[:c:Commons:Wiki Loves Folklore 2023|Wiki Loves Folklore]] gender gap focus and a folk culture theme on Wikipedia.
You can help Wikipedia's coverage of folklore from your area by writing or improving articles about things like folk festivals, folk dances, folk music, women and queer folklore figures, folk game athletes, women in mythology, women warriors in folklore, witches and witch hunting, fairy tales, and more. Users can help create new articles, expand or translate from a [[:m:Feminism and Folklore 2023/List of Articles|list]] of suggested articles.
Organisers are requested to work on the following action items to sign up their communities for the project:
# Create a page for the contest on the local wiki.
# Set up a fountain tool or dashboard.
# Create the local list and mention the timeline and local and international prizes.
# Request local admins for site notice.
# Link the local page and the fountain/dashboard link on the [[:m:Feminism and Folklore 2023/Project Page|meta project page]].
This year we would be supporting the community's financial aid for Internet and childcare support. This would be provided for the local team including their jury and coordinator team. This support is opt-in and non mandatory. Kindly fill in [https://docs.google.com/forms/d/e/1FAIpQLSea81OO0lVgUBd551iIiENXht7BRCISYZlKyBQlemZu_j2OHQ/viewform this Google form] and mark a mail to [mailto:support@wikilovesfolklore.org support@wikilovesfolklore.org] with the subject line starting as [Stipend] Name or Username/Language. The last date to sign up for internet and childcare aid from our team is 20th of January 2023, We encourage the language coordinators to sign up their community on this link by the 25th of January 2023.
Learn more about the contest and prizes on our [[:m:Feminism and Folklore 2023|project page]]. Feel free to contact us on our [[:m:Talk:Feminism and Folklore 2023/Project Page|meta talk page]] or by email us if you need any assistance.
We look forward to your immense coordination.
Thank you and Best wishes,
[[:m:Feminism and Folklore 2023|Feminism and Folklore 2023 International Team]]
::::Stay connected [[File:B&W Facebook icon.png|link=https://www.facebook.com/feminismandfolklore/|30x30px]] [[File:B&W Twitter icon.png|link=https://twitter.com/wikifolklore|30x30px]]
</div></div>
--[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 10:23, 24 دَسَمبَر 2022 (UTC)
<!-- Message sent by User:Tiven2240@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=23942484 -->
== Global ban for PlanespotterA320/RespectCE ==
Per the [[m:Global bans|Global bans]] policy, I'm informing the project of this request for comment: [[m:Requests for comment/Global ban for PlanespotterA320 (2) ]] about banning a member from your community. Thank you.--[[User:Lemonaka|Lemonaka]] ([[User talk:Lemonaka|talk]]) 21:40, 6 February 2023 (UTC)
<!-- Message sent by User:Zabe@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Lemonaka/Massmessagelist&oldid=24501599 -->
== Editing news 2023 #1 ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="message"/><i>[[m:Special:MyLanguage/VisualEditor/Newsletter/2023/February|Read this in another language]] • [[m:Special:MyLanguage/VisualEditor/Newsletter|Subscription list for this multilingual newsletter]]</i>
This newsletter includes two key updates about the [[mw:Special:MyLanguage/Editing team|Editing]] team's work:
# The Editing team will finish adding new features to the [[mw:Special:MyLanguage/Talk pages project|Talk pages project]] and deploy it.
# They are beginning a new project, [[mw:Special:MyLanguage/Edit check|Edit check]].
<strong>Talk pages project</strong>
[[File:Page Frame Features on desktop.png|alt=Screenshot showing the talk page design changes that are currently available as beta features at all Wikimedia wikis. These features include information about the number of people and comments within each discussion.|thumb|300px|Some of the upcoming changes]]
The Editing team is nearly finished with this first phase of the [[mw:Special:MyLanguage/Talk_pages_project|Talk pages project]]. Nearly all [[mw:Special:MyLanguage/Talk pages project/Usability|new features]] are available now in the [[Special:Preferences#mw-prefsection-betafeatures|Beta Feature for {{int:discussiontools-preference-label}}]].
It will show information about how active a discussion is, such as the date of the most recent comment. There will soon be a new "{{int:skin-action-addsection}}" button. You will be able to turn them off at [[Special:Preferences#mw-prefsection-editing-discussion]]. Please [[mw:Special:MyLanguage/Talk:Talk_pages_project/Usability#c-PPelberg_(WMF)-20230215001000-Feedback:_Proposed_Revisions_to_%22Add_topic%22_button|tell them what you think]].
[[File:Daily edit completion rates mobile talk pages.png|thumb|300px|Daily edit completion rate by test group: DiscussionTools (test group) and MobileFrontend overlay (control group)]]
An A/B test for [[mw:Special:MyLanguage/Talk pages project/Mobile|{{int:discussiontools-preference-label}} on the mobile site]] has finished. Editors were [[mw:Special:MyLanguage/Talk_pages_project/Mobile#Status_Updates|more successful with {{int:discussiontools-preference-label}}]]. The Editing team is enabling these features for all editors on the mobile site.
<strong>New Project: Edit Check</strong>
The Editing team is beginning [[mw:Special:MyLanguage/Edit check|a project to help new editors of Wikipedia]]. It will help people identify some problems before they click "{{int:publishchanges}}". The first tool will encourage people to add references when they add new content. Please [[mw:Special:MyLanguage/Help:Watchlist|watch]] that page for more information. You can [[mw:Special:MyLanguage/Editing_team/Community_Conversations#20230303|join a conference call on 3 March 2023]] to learn more.<section end="message"/>
</div>
–[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|{{int:Talkpagelinktext}}]]) 23:24, 22 فَرؤری 2023 (UTC)
<!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/VisualEditor/Newsletter/Wikis_with_VE&oldid=24611966 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Your wiki will be in read only soon</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] tests the switch between its first and secondary data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. To make sure everything is working, the Wikimedia Technology department needs to do a planned test. This test will show if they can reliably switch from one data centre to the other. It requires many teams to prepare for the test and to be available to fix any unexpected problems.
All traffic will switch on '''{{#time:j xg|2023-03-01|en}}'''. The test will start at '''[https://zonestamp.toolforge.org/{{#time:U|2023-03-01T14:00|en}} {{#time:H:i e|2023-03-01T14:00}}]'''.
Unfortunately, because of some limitations in [[mw:Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2023-03-01|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. There will be more notifications about this. A banner will be displayed on all wikis 30 minutes before this operation happens. '''Please share this information with your community.'''</div><section end="server-switch"/>
</div>
<span dir=ltr>[[m:User:Trizek (WMF)|Trizek (WMF)]] ([[m:User talk:Trizek (WMF)|{{int:talk}}]])</span> 21:20, 27 فَرؤری 2023 (UTC)
<!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=24390465 -->
== Ukraine's Cultural Diplomacy Month 2023: We are back! ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:UCDM 2023 promo.png|180px|right]]
{{int:please-translate}}
Hello, dear Wikipedians!<br/>
[[m:Special:MyLanguage/Wikimedia Ukraine|Wikimedia Ukraine]], in cooperation with the [[:en:Ministry of Foreign Affairs of Ukraine|Ministry of Foreign Affairs of Ukraine]] and [[:en:Ukrainian Institute|Ukrainian Institute]], has launched the third edition of writing challenge "'''[[m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2023|Ukraine's Cultural Diplomacy Month]]'''", which lasts from 1st until 31st March 2023. The campaign is dedicated to famous Ukrainian artists of cinema, music, literature, architecture, design and cultural phenomena of Ukraine that are now part of world heritage. We accept contribution in every language! The most active contesters will receive [[m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2023/Prizes|prizes]].<br/>
We invite you to take part and help us improve the coverage of Ukrainian culture on Wikipedia in your language! Also, we plan to set up a [[m:CentralNotice/Request/UCDM 2023|banner]] to notify users of the possibility to participate in such a challenge!
</div>
[[m:User:ValentynNefedov (WMUA)|ValentynNefedov (WMUA)]] ([[m:User talk:ValentynNefedov (WMUA)|talk]]) 07:58, 1 March 2023 (UTC)
</div>
<!-- Message sent by User:ValentynNefedov (WMUA)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=23942484 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Wikimania 2023 Welcoming Program Submissions</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="wikimania-program-submissions"/>[[File:Wikimania Singapore Logo.svg|right|frameless]]Do you want to host an in-person or virtual session at Wikimania 2023? Maybe a hands-on workshop, a lively discussion, a fun performance, a catchy poster, or a memorable lightning talk? [[wmania:Special:MyLanguage/2023:Program/Submissions|'''Submissions are open until March 28''']]. The event will have dedicated hybrid blocks, so virtual submissions and pre-recorded content are also welcome. If you have any questions, please join us at an upcoming conversation on March 12 or 19, or reach out by email at wikimania@wikimedia.org or on Telegram. More information on-wiki.<section end="wikimania-program-submissions"/>
</div>
<!-- Message sent by User:CKoerner (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=24390465 -->
== Enabling Section Translation: a new mobile translation experience ==
{{int:Hello}} Kashmiri Wikipedians!
Apologies as this message is not in your language, {{int:Please help translate}} to your language.
The [[mw:Wikimedia_Language_engineering|WMF Language team]] is pleased to let you know that we will like to enable the [[mw:Content_translation/Section_translation|Section translation]] tool in Kashmiri Wikipedia. For this, our team will love you to read about the tool and test it so you can:
* Give us your feedback
* Ask us questions
* Tell us how to improve it.
Below is background information about Section translation, why we have chosen your community, and how to test it.
'''Background information'''
[[mw:Content_translation|Content Translation]] has been a successful tool for editors to create content in their language. More than one million articles have been created across all languages since the tool was released in 2015. The Wikimedia Foundation Language team has improved the translation experience further with the Section Translation. The WMF Language team enabled the early version of the tool in February 2021 in Bengali Wikipedia. Through their feedback, the tool was improved and ready for your community to test and provide feedback to make it better.
[https://design.wikimedia.org/strategy/section-translation.html Section Translation] extends the capabilities of Content Translation to support mobile devices. On mobile, the tool will:
* Guide you to translate one section at a time in order to expand existing articles or create new ones.
* Make it easy to transfer knowledge across languages anytime from your mobile device.
Kashmiri Wikipedia seems an ideal candidate to enjoy this new tool since it has Content Translation tool enabled by default. Also, some of your community members have [[phab:T326541|requested for the tool]].
We plan to enable the tool in the coming week if there are no objections from your community. After it is enabled, we’ll monitor the content created with the tool and process all the feedback. In any case, feel free to raise any concerns or questions you may already have in any of the following formats:
* As a reply to this message
* On [[mw:Talk:Content_translation/Section_translation|the project talk page]].
'''Try the tool'''
Before the enablement, you can try the current implementation of the tool in [https://test.m.wikipedia.org/w/index.php?title=Special:ContentTranslation&from=en&to=ks&sx=true#/sx our testing instance]. Once it is enabled on Kashmiri Wikipedia, you’ll have access to https://ks.wikipedia.org/wiki/Special:ContentTranslation with your mobile device. You can select an article to translate, and machine translation will be provided as a starting point for editors to improve.
'''Provide feedback'''
Please provide feedback about Section translation in any of the formats you are most comfortable with. We want to hear about your impressions on:
* The tool
* What you think about our plans to enable it
* Your ideas for improving the tool.
Thanks, and we look forward to your feedback.
[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 05:22, 28 مارٕچ 2023 (UTC) On behalf of the WMF Language team.
:Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] Thanks for this amazing news. I have tested it on Test wiki. I don't find a way to add new sections to the articles that I have created on test wiki. Checking the in-progress sections doesn't allow me to search the translations that i have made. The language search option in it doesn't allow me to search for my language. Can you guide me how can i add a new section to the article that I created on test wiki. Thankyou. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 14:26, 28 مارٕچ 2023 (UTC)
::Hello [[رُکُن:511KeV|'''511KeV''']]
::I think I can help you:
::Step 1:
::Click on the "'''In progress'''" button, it will bring you to where you see the "+ New translation" button.
::Step 2:
::Click on the "'''+ New translation'''" button. That will take you to the search space and below it, you will find a list of your Recently translated sections (written as "Recently edited by you").
::You should find the articles you are looking for below. I hope this helps you. Let me know if it works. Thank you!
::[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 06:02, 31 مارٕچ 2023 (UTC)
:::@[[رُکُن:511KeV|511KeV]]
:::Suppose you still can't add new sections to your translated article. In that case, the reason will be that the suggested sections are based on the contents from the actual (production) Wikipedia. For example, if there is no article for Paneer in Kashmiri, the tool will allow you to create one. However, if you do so in the test server, the tool still acts as if the article does not exist because it does not exist on the Kashmiri Wikipedia [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 07:42, 31 مارٕچ 2023 (UTC)
::::@[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] Thankyou for your help. I will be happy to see this feature in our Wiki. You can proceed. I also want to see Machine translation integrated in this as soon as possible. Thankyou. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 08:56, 31 مارٕچ 2023 (UTC)
:::::Thank you, [[رُکُن:511KeV|'''511KeV''']], for you feedback. The tool will be enabled this week.
:::::[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 15:09, 4 اَپریل 2023 (UTC)
::::::Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]], I on behalf of Kashmiri Community want to Thank you and your team for approving our request. I am sure this tool will help in the development of this Wikipedia. Thankyou. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 16:35, 4 اَپریل 2023 (UTC)
Thankyou, [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]], it is very helpful. '''<span style="text-Venara:7px 7px 8px yellow; font-family:Papyrus">[[User:Tajamul9|<span style="color:#0000FF">Tajamul9</span>]]<sub>[[User talk:Tajamul9#bottom|Talk]]</sub></span>''' 16:01, 4 اَپریل 2023 (UTC)
== <span lang="en" dir="ltr" class="mw-content-ltr">Your wiki will be in read-only soon</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] tests the switch between its first and secondary data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. To make sure everything is working, the Wikimedia Technology department needs to do a planned test. This test will show if they can reliably switch from one data centre to the other. It requires many teams to prepare for the test and to be available to fix any unexpected problems.
All traffic will switch on '''{{#time:j xg|2023-04-26|en}}'''. The test will start at '''[https://zonestamp.toolforge.org/{{#time:U|2023-04-26T14:00|en}} {{#time:H:i e|2023-04-26T14:00}}]'''.
Unfortunately, because of some limitations in [[mw:Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2023-04-26|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. There will be more notifications about this. A banner will be displayed on all wikis 30 minutes before this operation happens. '''Please share this information with your community.'''</div><section end="server-switch"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 00:41, 21 اَپریل 2023 (UTC)
<!-- Message sent by User:UOzurumba (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=24748237 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Seeking volunteers for the next step in the Universal Code of Conduct process</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/U4C Building Committee/Nominations/Announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/U4C Building Committee/Nominations/Announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Hello,
As follow-up to [https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/message/IOMVS7W75ZYMABQGOQ2QH2JAURC3CHGH/ the message about the Universal Code of Conduct Enforcement Guidelines] by Wikimedia Foundation Board of Trustees Vice Chair, Shani Evenstein Sigalov, I am reaching out about the next steps. I want to bring your attention to the next stage of the Universal Code of Conduct process, which is forming a building committee for the Universal Code of Conduct Coordinating Committee (U4C). I invite community members with experience and deep interest in community health and governance to nominate themselves to be part of the U4C building committee, which needs people who are:
* Community members in good standing
* Knowledgeable about movement community processes, such as, but not limited to, policy drafting, participatory decision making, and application of existing rules and policies on Wikimedia projects
* Aware and appreciative of the diversity of the movement, such as, but not limited to, languages spoken, identity, geography, and project type
* Committed to participate for the entire U4C Building Committee period from mid-May - December 2023
* Comfortable with engaging in difficult, but productive conversations
* Confidently able to communicate in English
The Building Committee shall consist of volunteer community members, affiliate board or staff, and Wikimedia Foundation staff.
The Universal Code of Conduct has been a process strengthened by the skills and knowledge of the community and I look forward to what the U4C Building Committee creates. If you are interested in joining the Building Committee, please either [[m:Special:MyLanguage/Universal_Code_of_Conduct/U4C_Building_Committee/Nominations|sign up on the Meta-Wiki page]], or contact ucocproject[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org by May 12, 2023. '''[[m:Special:MyLanguage/Universal_Code_of_Conduct/U4C_Building_Committee|Read more on Meta-Wiki]]'''.
Best regards,<br /><section end="announcement-content" />
</div>
[[User:Xeno (WMF)|Xeno (WMF)]] 19:00, 26 اَپریل 2023 (UTC)
<!-- Message sent by User:Xeno (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=24941045 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Automatic citations based on ISBN are broken</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="message" />
Apologies if this message does not reach you in your favorite language. [[:m:User:Elitre (WMF)/ISBN|You can help translate it centrally at Meta]]. Thanks for your help.
We have recently become unable to access the WorldCat API which provided the ability to generate citations using ISBN numbers. The Wikimedia Foundation's [[mw:Editing_team|Editing team]] is investigating several options to restore the functionality, but will need to disable ISBN citation generation for now.
This affects citations made with the [[mw:Special:MyLanguage/Help:VisualEditor/User_guide/Citations-Full#Automatic|VisualEditor Automatic tab]], and the use of the citoid API in gadgets and user scripts, such as the autofill button on [[:en:Wikipedia:RefToolbar|refToolbar]]. Please note that all the other automatic ways of generating citations, including via URL or DOI, are still available.
You can keep updated on the situation [[phab:T336298|via Phabricator]], or by reading the next issues of [[m:Tech News]]. If you know of any users or groups who rely heavily on this feature (for instance, someone who has an upcoming editathon), I'd appreciate it if you shared this update with them.
[[User:Elitre (WMF)|Elitre (WMF)]], on behalf of the Editing team.<section end="message" />
</div>
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 19:45, 11 مٔیی 2023 (UTC)
<!-- Message sent by User:Elitre (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Quiddity_(WMF)/sandbox3&oldid=25009633 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Selection of the U4C Building Committee</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
The next stage in the Universal Code of Conduct process is establishing a Building Committee to create the charter for the Universal Code of Conduct Coordinating Committee (U4C). The Building Committee has been selected. [[m:Special:MyLanguage/Universal_Code_of_Conduct/U4C_Building_Committee|Read about the members and the work ahead on Meta-wiki]].<section end="announcement-content" />
</div>
-- [[m:Special:MyLanguage/Universal_Code_of_Conduct/Project|UCoC Project Team]], 04:20, 27 مٔیی 2023 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25018085 -->
== MinT Machine Translation enabled in Kashmiri Wikipedia ==
{{int:Hello}} Kashmiri Wikipedians!
Apologies as this message is not in your language, {{int:Please help translate}} to your language.
The WMF Language team has added a machine translation (MT) system supporting [[خاص:ContentTranslation|Content Translation]] for the first time in your Wikipedia called MinT; you can use [[mw:Content_translation/Machine_Translation/MinT|MinT machine translation]] when translating Wikipedia articles using the Content Translation tool.
The WMF Language team provides the MinT service. It is hosted in the Wikimedia Foundation Infrastructure with [[:en:Neural_machine_translation|neural machine translation]] models that other organizations have released with an open-source license. MinT integrates translation based on [https://ai.facebook.com/research/no-language-left-behind/ NLLB-200] and [https://opus.nlpl.eu/ OpusMT] and will replace those as separate options. This MT is set as optional; in your Wikipedia, so you can choose not to use it as your preferred initial translator. If you decide to use this service, you can select "MinT" from the "Initial Translation" dropdown menu, where you will find other existing machine translation services on the sidebar.
Since MinT is hosted in the WMF Infrastructure and the models are open source, it adheres to Wikipedia's policies about attribution of rights, your privacy as a user and brand representation. You can find more information about the MinT Machine translation and the models on [[mw:Content_translation/Machine_Translation/MinT|this page]].
Please note that the use of the Mint MT is optional. However, we would want your community to:
* use it to improve the quality of the Machine Translation service; and
* [[mw:Talk:Content_translation|please provide feedback]] about its quality and ask any questions about this addition.
We look forward to you using this open-source addition to the Content Translations tool.
Thank you!
[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 17:39, 31 مٔیی 2023 (UTC) On behalf of the WMF Language team.
:Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]], It is really amazing development. I am already loving it. Though the translations are not perfect but they help us to reduce the time in creating articles. I am hopeful that this will have a good impact on this Wikipedia. I am thanking whole Language Team for making this possible. Thankyou once again. Have a good day. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 16:18, 2 جوٗن 2023 (UTC)
== <span lang="en" dir="ltr" class="mw-content-ltr"> Announcing the new Elections Committee members</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation elections committee/Nominatons/2023/Announcement - new members|You can find this message translated into additional languages on Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections committee/Nominatons/2023/Announcement - new members|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections committee/Nominatons/2023/Announcement - new members}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Hello there,
We are glad to announce [[listarchive:list/wikimedia-l@lists.wikimedia.org/message/4TALOUFPAP2VDBR27GKRVOP7IGQYU3DB/|the new members and advisors of the Elections Committee]]. The [[m:Special:MyLanguage/Wikimedia_Foundation_elections_committee|Elections Committee]] assists with the design and implementation of the process to select Community- and Affiliate-Selected trustees for the Wikimedia Foundation Board of Trustees. After an open nomination process, the strongest candidates spoke with the Board and four candidates were asked to join the Elections Committee. Four other candidates were asked to participate as advisors.
Thank you to all the community members who submitted their names for consideration. We look forward to working with the Elections Committee in the near future.
On behalf of the Wikimedia Foundation Board of Trustees,<br /><section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 18:00, 28 جوٗن 2023 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25018085 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Review the Charter for the Universal Code of Conduct Coordinating Committee</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/U4C Building Committee/Announcement - Review|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/U4C Building Committee/Announcement - Review}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Hello all,
I am pleased to share the next step in the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]] work. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|Universal Code of Conduct Coordinating Committee (U4C) draft charter]] is now ready for your review.
The [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct/Enforcement guidelines|Enforcement Guidelines]] require a [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines#4.5_U4C_Building_Committee|Building Committee]] form to draft a charter that outlines procedures and details for a global committee to be called the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines#4._UCoC_Coordinating_Committee_(U4C)|Universal Code of Conduct Coordinating Committee (U4C)]]. Over the past few months, the U4C Building Committee worked together as a group to discuss and draft the U4C charter. The U4C Building Committee welcomes feedback about the draft charter now through 22 September 2023. After that date, the U4C Building Committee will revise the charter as needed and a community vote will open shortly afterward.
Join the conversation during the [[m:Special:MyLanguage/Universal Code of Conduct/U4C Building Committee#Conversation hours|conversation hours]] or on [[m:Talk:Universal Code of Conduct/Coordinating Committee/Charter|Meta-wiki]].
Best,<br /><section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]], on behalf of the U4C Building Committee, 15:35, 28 اَگَست 2023 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25392152 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Your wiki will be in read-only soon</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. To make sure everything is working, the Wikimedia Technology department needs to do a planned test. This test will show if they can reliably switch from one data centre to the other. It requires many teams to prepare for the test and to be available to fix any unexpected problems.
All traffic will switch on '''{{#time:j xg|2023-09-20|en}}'''. The test will start at '''[https://zonestamp.toolforge.org/{{#time:U|2023-09-20T14:00|en}} {{#time:H:i e|2023-09-20T14:00}}]'''.
Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2023-09-20|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. There will be more notifications about this. A banner will be displayed on all wikis 30 minutes before this operation happens. '''Please share this information with your community.'''</div><section end="server-switch"/>
</div>
[[User:Trizek (WMF)|Trizek_(WMF)]] ([[m:User talk:Trizek (WMF)|talk]]) 09:23, 15 سَتَمبَر 2023 (UTC)
<!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=25018086 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">== Opportunities open for the Affiliations Committee, Ombuds commission, and the Case Review Committee ==</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
<div style="margin:.2em 0 .5em;margin-{{#switch:{{PAGELANGUAGE}}|ar|arc|ary|arz|azb|bcc|bgn|ckb|bqi|dv|fa|fa-af|glk|ha-arab|he|kk-arab|kk-cn|ks|ku-arab|ms-arab|mzn|pnb|prd|ps|sd|ug|ur|ydd|yi=right|left}}:3ex;">
[[m:Special:MyLanguage/Wikimedia Foundation Legal department/Committee appointments/Announcement/Short|''You can find this message translated into additional languages on Meta-wiki.'']]
''<span class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Legal department/Committee appointments/Announcement/Short|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Legal department/Committee appointments/Announcement/Short}}&language=&action=page&filter= {{int:please-translate}}]</span>''</div>
Hi everyone! The [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee]] (AffCom), [[m:Special:MyLanguage/Ombuds_commission|Ombuds commission]] (OC), and the [[m:Special:MyLanguage/Trust_and_Safety/Case_Review_Committee|Case Review Committee]] (CRC) are looking for new members. These volunteer groups provide important structural and oversight support for the community and movement. People are encouraged to nominate themselves or encourage others they feel would contribute to these groups to apply. There is more information about the roles of the groups, the skills needed, and the opportunity to apply on the [[m:Special:MyLanguage/Wikimedia Foundation Legal department/Committee appointments|'''Meta-wiki page''']].
On behalf of the Committee Support team,<br /><section end="announcement-content" />
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
~ [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 16:41, 9 اَکتوٗبَر 2023 (UTC) </div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25570445 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Review and comment on the 2024 Wikimedia Foundation Board of Trustees selection rules package</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/wiki/Wikimedia Foundation elections/2024/Announcement/Rules package review - short| You can find this message translated into additional languages on Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/wiki/Wikimedia Foundation elections/2024/Announcement/Rules package review - short|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Wikimedia Foundation elections/2024/Announcement/Rules package review - short}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Dear all,
Please review and comment on the Wikimedia Foundation Board of Trustees selection rules package from now until 29 October 2023. The selection rules package was based on older versions by the Elections Committee and will be used in the 2024 Board of Trustees selection. Providing your comments now will help them provide a smoother, better Board selection process. [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|More on the Meta-wiki page]].
Best,
Katie Chan <br>
Chair of the Elections Committee<br /><section end="announcement-content" />
</div>
01:12, 17 اَکتوٗبَر 2023 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25570445 -->
== مومینٹ چارٹر کَتھ باتھ مَنٛز گژھِو شٲمِل ==
سَلام،
تۄہہِ آسہِ پَتا زِ، مومینٹ چارٹَر ڈرافٹِنگ کٔمِٹی (ایم سی ڈی سی) چھِ بَرادری ہٕنٛز تَجویٖز رَٹان کیٚنٛہہ مومینٹ چارٹَر ڈرافٹَن مُتلِق: یِم چھِ عالمی کۄنٛسل، "ہَب" تہٕ "معنے" ڈرافٹ .
أسؠ چھِ یَژھ زِ کٲشِر بَرادری گَژھِ پوٗرٕ پٲٹھؠ اَتھ عَملہِ مَنٛز شٲمِل گَژھِن تہٕ اَتھ مُتلِق راے پیش کَرٕنؠ. اَمہِ کِن چھِ 19 اکتوٗبَر 8:00 بَجے پؠٹھ 9:00 بَجے تام اَکھ آنلایِن مُلاکاتھ کَرنُک فٲصلہٕ نِنہٕ آمُت یُس گوٗگل میٖٹَس پؠٹھ آسہِ. أسؠ چھِ تۄہہِ داوَتھ دِوان اَتھ مَنٛز شٲمِل گَژھنہٕ خٲطرٕ تہٕ پَننؠ راے برٛونٛہہ کُن تھاونہٕ خٲطرٕ!
مومینٹ چارٹَر عُنوانَس مُتلِق ہیٚکِو تۄہہِ، مےٚ پژھِو مومینٹ چارٹَرَس مُتلِق کیٚنٛہہ تہِ تہٕ یِم ڈرافٹ پٔرِتھ [[:m:Movement Charter/Content/Global Council|عالمی کۄنٛسل]]، "[[:m:Movement Charter/Content/Hubs|ہَب]]" تہٕ "[[:m:Movement Charter/Content/Glossary|معنے]]" کَتھ باتھ برٛونٛہہ.
* '''تٲریٖخ''': 17 اکتوٗبر 7:00 بَجے پؠٹھ 8:00 ہِندوستٲنؠ وَقٕت مُطٲبِق.
* '''لِنک''': [https://meet.google.com/grr-yxgw-gee یَتھ جاے]
سَوالَن خٲطرٕ ہیٚکِو تۄہہِ ''[[رُکُن:511KeV|مےٚ ستؠ کَتھ باتھ کٔرِتھ]]''. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 12:40, 17 اَکتوٗبَر 2023 (UTC)
== <span lang="en" dir="ltr" class="mw-content-ltr">Coming soon: Reference Previews</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="ReferencePreviewsDefault"/>
[[File:Example_of_a_Reference_Preview.png|right|300px]]
A new feature is coming to your wiki soon: Reference Previews are popups for references. Such popups have existed on wikis as local gadgets for many years. Now there is a central solution, available on all wikis, and consistent with the [[mw:Special:MyLanguage/Page Previews|PagePreviews feature]].
Reference Previews will be visible to everyone, including readers. If you don’t want to see them, [[m:WMDE Technical Wishes/ReferencePreviews#Opt-out feature|you can opt out]]. If you are [[Special:Preferences#mw-prefsection-gadgets|using the gadgets]] Reference Tooltips or Navigation Popups, you won’t see Reference Previews unless you disable the gadget.
Reference Previews have been a beta feature on many wikis since 2019, and a default feature on some since 2021. Deployment is planned for November 22.
* [[mw:Special:MyLanguage/Help:Reference Previews|Help page]]
* [[m:WMDE Technical Wishes/ReferencePreviews|Project page with more information (in English)]].
* Feedback is welcome [[m:Talk:WMDE Technical Wishes/ReferencePreviews|on this talk page]].
-- For [[m:WMDE Technical Wishes|Wikimedia Deutschland’s Technical Wishes]] team,
<section end="ReferencePreviewsDefault"/>
</div>
[[m:User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]], 13:11, 15 نَوَمبَر 2023 (UTC)
<!-- Message sent by User:Johanna Strodt (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=25866958 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">(New) Feature on [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]: Adding geopoints via QID</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="Body"/>Since September 2022, it is possible to create geopoints using a QID. Many wiki contributors have asked for this feature, but it is not being used much. Therefore, we would like to remind you about it. More information can be found on the [[M:WMDE_Technical_Wishes/Geoinformation/Geopoints via QID|project page]]. If you have any comments, please let us know on the [[M:Talk:WMDE Technical Wishes/Geoinformation/Geopoints via QID|talk page]]. – Best regards, the team of Technical Wishes at Wikimedia Deutschland
<section end="Body"/>
</div>
[[M:User:Thereza Mengs (WMDE)|Thereza Mengs (WMDE)]] 12:31, 13 دَسَمبَر 2023 (UTC)
<!-- Message sent by User:Thereza Mengs (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=25955829 -->
== Do you use Wikidata in Wikimedia sibling projects? Tell us about your experiences ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''Note: Apologies for cross-posting and sending in English.''
Hello, the '''[[m:WD4WMP|Wikidata for Wikimedia Projects]]''' team at Wikimedia Deutschland would like to hear about your experiences using Wikidata in the sibling projects. If you are interested in sharing your opinion and insights, please consider signing up for an interview with us in this '''[https://wikimedia.sslsurvey.de/Wikidata-for-Wikimedia-Interviews Registration form]'''.<br>
''Currently, we are only able to conduct interviews in English.''
The front page of the form has more details about what the conversation will be like, including how we would '''compensate''' you for your time.
For more information, visit our ''[[m:WD4WMP/AddIssue|project issue page]]'' where you can also share your experiences in written form, without an interview.<br>We look forward to speaking with you, [[m:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[m:User talk:Danny Benjafield (WMDE)|talk]]) 08:53, 5 January 2024 (UTC)
</div>
<!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/WD4WMP/ScreenerInvite&oldid=26027495 -->
== Making MinT a default Machine Translation for your Wikipedia ==
{{int:Hello}} Kashmiri Wikipedians!
Apologies as this message is not in your native language, {{int:please-translate}}.
The [[mw:Wikimedia Language engineering|WMF Language team]] wants to make [[mw:MinT|MinT]] the default machine translation support in Kashmiri Wikipedia [[mw:Content translation|Content Translation]]. MinT uses the [https://ai4bharat.iitm.ac.in/indic-trans2/ IndicTrans2] machine translation model, which recently has a new version.
Our proposal to set MinT as the default machine translation service in this Wikipedia will expose contributors to open source service by default and allow them to switch to other services if they prefer those services. Contributors can decide to switch to another translation service that is not default if they prefer the service, which will be helpful in analysing user preferences in the future.
The WMF Language team is requesting feedback from members of this community in this thread if making the MinT the default translation service is okay in Kashmiri Wikipedia. If there are no objections to the above proposal. In that case, MinT will become the default machine translation in this Wikipedia by the end of January 2024.
Thank you for your feedback.
[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 21:43, 9 جَنؤری 2024 (UTC) On behalf of the WMF Language team.
== Reusing references: Can we look over your shoulder? ==
''Apologies for writing in English.''
The Technical Wishes team at Wikimedia Deutschland is planning to [[m:WMDE Technical Wishes/Reusing references|make reusing references easier]]. For our research, we are looking for wiki contributors willing to show us how they are interacting with references.
* The format will be a 1-hour video call, where you would share your screen. [https://wikimedia.sslsurvey.de/User-research-into-Reusing-References-Sign-up-Form-2024/en/ More information here].
* Interviews can be conducted in English, German or Dutch.
* [[mw:WMDE_Engineering/Participate_in_UX_Activities#Compensation|Compensation is available]].
* Sessions will be held in January and February.
* [https://wikimedia.sslsurvey.de/User-research-into-Reusing-References-Sign-up-Form-2024/en/ Sign up here if you are interested.]
* Please note that we probably won’t be able to have sessions with everyone who is interested. Our UX researcher will try to create a good balance of wiki contributors, e.g. in terms of wiki experience, tech experience, editing preferences, gender, disability and more. If you’re a fit, she will reach out to you to schedule an appointment.
We’re looking forward to seeing you, [[m:User:Thereza Mengs (WMDE)| Thereza Mengs (WMDE)]]
<!-- Message sent by User:Thereza Mengs (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=25956752 -->
== Feminism and Folklore 2024 ==
<div style="border:8px maroon ridge;padding:6px;>
[[File:Feminism and Folklore 2024 logo.svg|centre|550px|frameless]]
::<div lang="en" dir="ltr" class="mw-content-ltr">
<center>''{{int:please-translate}}''</center>
Dear Wiki Community,
You are humbly invited to organize the '''[[:m:Feminism and Folklore 2024|Feminism and Folklore 2024]]''' writing competition from February 1, 2023, to March 31, 2023 on your local Wikipedia. This year, Feminism and Folklore will focus on feminism, women's issues, and gender-focused topics for the project, with a [[:c:Commons:Wiki Loves Folklore 2024|Wiki Loves Folklore]] gender gap focus and a folk culture theme on Wikipedia.
You can help Wikipedia's coverage of folklore from your area by writing or improving articles about things like folk festivals, folk dances, folk music, women and queer folklore figures, folk game athletes, women in mythology, women warriors in folklore, witches and witch hunting, fairy tales, and more. Users can help create new articles, expand or translate from a generated list of suggested articles.
Organisers are requested to work on the following action items to sign up their communities for the project:
# Create a page for the contest on the local wiki.
# Set up a campaign on '''CampWiz''' tool.
# Create the local list and mention the timeline and local and international prizes.
# Request local admins for site notice.
# Link the local page and the CampWiz link on the [[:m:Feminism and Folklore 2024/Project Page|meta project page]].
This year, the Wiki Loves Folklore Tech Team has introduced two new tools to enhance support for the campaign. These tools include the '''Article List Generator by Topic''' and '''CampWiz'''. The Article List Generator by Topic enables users to identify articles on the English Wikipedia that are not present in their native language Wikipedia. Users can customize their selection criteria, and the tool will present a table showcasing the missing articles along with suggested titles. Additionally, users have the option to download the list in both CSV and wikitable formats. Notably, the CampWiz tool will be employed for the project for the first time, empowering users to effectively host the project with a jury. Both tools are now available for use in the campaign. [https://tools.wikilovesfolklore.org/ '''Click here to access these tools''']
Learn more about the contest and prizes on our [[:m:Feminism and Folklore 2024|project page]]. Feel free to contact us on our [[:m:Talk:Feminism and Folklore 2024/Project Page|meta talk page]] or by email us if you need any assistance.
We look forward to your immense coordination.
Thank you and Best wishes,
'''[[:m:Feminism and Folklore 2024|Feminism and Folklore 2024 International Team]]'''
::::Stay connected [[File:B&W Facebook icon.png|link=https://www.facebook.com/feminismandfolklore/|30x30px]] [[File:B&W Twitter icon.png|link=https://twitter.com/wikifolklore|30x30px]]
</div></div>
--[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 07:26, 18 جَنؤری 2024 (UTC)
== Wiki Loves Folklore is back! ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{int:please-translate}}
[[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]]
Dear Wiki Community,
You are humbly invited to participate in the '''[[:c:Commons:Wiki Loves Folklore 2024|Wiki Loves Folklore 2024]]''' an international photography contest organized on Wikimedia Commons to document folklore and intangible cultural heritage from different regions, including, folk creative activities and many more. It is held every year from the '''1st till the 31st''' of March.
You can help in enriching the folklore documentation on Commons from your region by taking photos, audios, videos, and [https://commons.wikimedia.org/w/index.php?title=Special:UploadWizard&campaign=wlf_2024 submitting] them in this commons contest.
You can also [[:c:Commons:Wiki Loves Folklore 2024/Organize|organize a local contest]] in your country and support us in translating the [[:c:Commons:Wiki Loves Folklore 2024/Translations|project pages]] to help us spread the word in your native language.
Feel free to contact us on our [[:c:Commons talk:Wiki Loves Folklore 2024|project Talk page]] if you need any assistance.
'''Kind regards,'''
'''Wiki loves Folklore International Team'''
-- [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 07:26, 18 جَنؤری 2024 (UTC)
</div></div>
<!-- Message sent by User:Tiven2240@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=23942484 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Vote on the Charter for the Universal Code of Conduct Coordinating Committee</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting opens}}&language=&action=page&filter= {{int:please-translate}}]''
Hello all,
I am reaching out to you today to announce that the voting period for the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) Charter is now open. Community members may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|cast their vote and provide comments about the charter via SecurePoll]] now through '''2 February 2024'''. Those of you who voiced your opinions during the development of the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|UCoC Enforcement Guidelines]] will find this process familiar.
The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|current version of the U4C Charter]] is on Meta-wiki with translations available.
Read the charter, go vote and share this note with others in your community. I can confidently say the U4C Building Committee looks forward to your participation.
On behalf of the UCoC Project team,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 18:08, 19 جَنؤری 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25853527 -->
== A new feature for previewing references on your wiki ==
<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:Page Previews and Reference Previews.png|alt=Montage of two screenshots, one showing the Reference Previews feature, and one showing the Page Previews feature|right|350x350px]]
''Apologies for writing in English. If you can translate this message, that would be much appreciated.''
Hi. As announced some weeks ago <sup>[<nowiki/>[[listarchive:list/wikitech-l@lists.wikimedia.org/thread/CNPRQE2IG5ZNAVAOHBMF4AXXRLGJE6UT/|1]]] [<nowiki/>[[m:Special:MyLanguage/Tech/News/2023/46|2]]]</sup>, Wikimedia Deutschland’s [[m:WMDE Technical Wishes|Technical Wishes]] team introduced [[mw:Special:MyLanguage/Help:Reference_Previews|Reference Previews]] to many wikis, including this one. This feature shows popups for references in the article text.
While this new feature is already usable on your wiki, most people here are not seeing it yet because your wiki has set [[m:WMDE Technical Wishes/ReferencePreviews#Relation to gadgets|a gadget as the default]] for previewing references. We plan to remove the default flag from the gadget on your wiki soon. This means:
* The new default for reference popups on your wiki will be Reference Previews.
* However, if you want to keep using the gadget, you can still enable it in [[Special:Preferences#mw-prefsection-gadgets|your personal settings]].
The benefit of having Reference Previews as the default is that the user experience will be consistent across wikis and with the [[mw:Special:MyLanguage/Page_Previews|Page Previews feature]], and that the software will be easier to maintain overall.
This change is planned for February 14. If you have concerns about this change, [[m:Talk:WMDE Technical Wishes/ReferencePreviews#Reference Previews to become the default for previewing references on more wikis.|please let us know on this talk page]] by February 12. – Kind regards, [[m:User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]], 09:30, 23 جَنؤری 2024 (UTC) </div>
<!-- Message sent by User:Johanna Strodt (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Johanna_Strodt_(WMDE)/MassMessageRecipients&oldid=26116190 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Last days to vote on the Charter for the Universal Code of Conduct Coordinating Committee</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting reminder|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting reminder}}&language=&action=page&filter= {{int:please-translate}}]''
Hello all,
I am reaching out to you today to remind you that the voting period for the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) charter will close on '''2 February 2024'''. Community members may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|cast their vote and provide comments about the charter via SecurePoll]]. Those of you who voiced your opinions during the development of the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|UCoC Enforcement Guidelines]] will find this process familiar.
The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|current version of the U4C charter]] is on Meta-wiki with translations available.
Read the charter, go vote and share this note with others in your community. I can confidently say the U4C Building Committee looks forward to your participation.
On behalf of the UCoC Project team,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 17:00, 31 جَنؤری 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25853527 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Announcing the results of the UCoC Coordinating Committee Charter ratification vote</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - results|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - results}}&language=&action=page&filter= {{int:please-translate}}]''
Dear all,
Thank you everyone for following the progress of the Universal Code of Conduct. I am writing to you today to announce the outcome of the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|ratification vote]] on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|Universal Code of Conduct Coordinating Committee Charter]]. 1746 contributors voted in this ratification vote with 1249 voters supporting the Charter and 420 voters not. The ratification vote process allowed for voters to provide comments about the Charter.
A report of voting statistics and a summary of voter comments will be published on Meta-wiki in the coming weeks.
Please look forward to hearing about the next steps soon.
On behalf of the UCoC Project team,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 18:23, 12 فَرؤری 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26160150 -->
== Ukraine's Cultural Diplomacy Month 2024: We are back! ==
<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:UCDM 2024 general.jpg|180px|right]]
{{int:please-translate}}
Hello, dear Wikipedians!<br/>
[[:m:Special:MyLanguage/Wikimedia Ukraine|Wikimedia Ukraine]], in cooperation with the [[:en:Ministry of Foreign Affairs of Ukraine|MFA of Ukraine]] and [[:en:Ukrainian Institute|Ukrainian Institute]], has launched the forth edition of writing challenge "'''[[:m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2024|Ukraine's Cultural Diplomacy Month]]'''", which lasts from 1st until 31st March 2024. The campaign is dedicated to famous Ukrainian artists of cinema, music, literature, architecture, design and cultural phenomena of Ukraine that are now part of world heritage. We accept contribution in every language! The most active contesters will receive prizes.<br/>
We invite you to take part and help us improve the coverage of Ukrainian culture on Wikipedia in your language! Also, we plan to set up a [[:m:CentralNotice/Request/UCDM 2024|banner]] to notify users of the possibility to participate in such a challenge! [[:m:User:ValentynNefedov (WMUA)|ValentynNefedov (WMUA)]] ([[:m:User talk:ValentynNefedov (WMUA)|talk]])
</div>
<!-- Message sent by User:ValentynNefedov (WMUA)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=26166467 -->
== <span lang="en" dir="ltr" class="mw-content-ltr"> Report of the U4C Charter ratification and U4C Call for Candidates now available</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – call for candidates| You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – call for candidates}}&language=&action=page&filter= {{int:please-translate}}]''
Hello all,
I am writing to you today with two important pieces of information. First, the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter/Vote results|report of the comments from the Universal Code of Conduct Coordinating Committee (U4C) Charter ratification]] is now available. Secondly, the call for candidates for the U4C is open now through April 1, 2024.
The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members are invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]].
Per the charter, there are 16 seats on the U4C: eight community-at-large seats and eight regional seats to ensure the U4C represents the diversity of the movement.
Read more and submit your application on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|Meta-wiki]].
On behalf of the UCoC project team,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 16:25, 5 مارٕچ 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26276337 -->
== <span lang="en" dir="ltr" class="mw-content-ltr"> Wikimedia Foundation Board of Trustees 2024 Selection</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
: ''[[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Announcement/Selection announcement| You can find this message translated into additional languages on Meta-wiki.]]''
: ''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Announcement/Selection announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2024/Announcement/Selection announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Dear all,
This year, the term of 4 (four) Community- and Affiliate-selected Trustees on the Wikimedia Foundation Board of Trustees will come to an end [1]. The Board invites the whole movement to participate in this year’s selection process and vote to fill those seats.
The [[m:Special:MyLanguage/Wikimedia Foundation elections committee|Elections Committee]] will oversee this process with support from Foundation staff [2]. The Board Governance Committee created a Board Selection Working Group from Trustees who cannot be candidates in the 2024 community- and affiliate-selected trustee selection process composed of Dariusz Jemielniak, Nataliia Tymkiv, Esra'a Al Shafei, Kathy Collins, and Shani Evenstein Sigalov [3]. The group is tasked with providing Board oversight for the 2024 trustee selection process, and for keeping the Board informed. More details on the roles of the Elections Committee, Board, and staff are here [4].
Here are the key planned dates:
* May 2024: Call for candidates and call for questions
* June 2024: Affiliates vote to shortlist 12 candidates (no shortlisting if 15 or less candidates apply) [5]
* June-August 2024: Campaign period
* End of August / beginning of September 2024: Two-week community voting period
* October–November 2024: Background check of selected candidates
* Board's Meeting in December 2024: New trustees seated
Learn more about the 2024 selection process - including the detailed timeline, the candidacy process, the campaign rules, and the voter eligibility criteria - on [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|this Meta-wiki page]], and make your plan.
'''Election Volunteers'''
Another way to be involved with the 2024 selection process is to be an Election Volunteer. Election Volunteers are a bridge between the Elections Committee and their respective community. They help ensure their community is represented and mobilize them to vote. Learn more about the program and how to join on this [[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Election Volunteers|Meta-wiki page]].
Best regards,
[[m:Special:MyLanguage/User:Pundit|Dariusz Jemielniak]] (Governance Committee Chair, Board Selection Working Group)
[1] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2021/Results#Elected
[2] https://foundation.wikimedia.org/wiki/Committee:Elections_Committee_Charter
[3] https://foundation.wikimedia.org/wiki/Minutes:2023-08-15#Governance_Committee
[4] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections_committee/Roles
[5] Even though the ideal number is 12 candidates for 4 open seats, the shortlisting process will be triggered if there are more than 15 candidates because the 1-3 candidates that are removed might feel ostracized and it would be a lot of work for affiliates to carry out the shortlisting process to only eliminate 1-3 candidates from the candidate list.<section end="announcement-content" />
</div>
[[User:MPossoupe_(WMF)|MPossoupe_(WMF)]]19:57, 12 مارٕچ 2024 (UTC)
<!-- Message sent by User:MPossoupe (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26349432 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Your wiki will be in read-only soon</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster.
All traffic will switch on '''{{#time:j xg|2024-03-20|en}}'''. The test will start at '''[https://zonestamp.toolforge.org/{{#time:U|2024-03-20T14:00|en}} {{#time:H:i e|2024-03-20T14:00}}]'''.
Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2024-03-20|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. There will be more notifications about this. A banner will be displayed on all wikis 30 minutes before this operation happens. '''Please share this information with your community.'''</div><section end="server-switch"/>
</div>
[[user:Trizek (WMF)|Trizek (WMF)]], 00:01, 15 مارٕچ 2024 (UTC)
<!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=25636619 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Vote now to select members of the first U4C</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens}}&language=&action=page&filter= {{int:please-translate}}]''
Dear all,
I am writing to you to let you know the voting period for the Universal Code of Conduct Coordinating Committee (U4C) is open now through May 9, 2024. Read the information on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|voting page on Meta-wiki]] to learn more about voting and voter eligibility.
The Universal Code of Conduct Coordinating Committee (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members were invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
On behalf of the UCoC project team,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 20:21, 25 اَپریل 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Vote now to select members of the first U4C</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens}}&language=&action=page&filter= {{int:please-translate}}]''
Dear all,
I am writing to you to let you know the voting period for the Universal Code of Conduct Coordinating Committee (U4C) is open now through May 9, 2024. Read the information on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|voting page on Meta-wiki]] to learn more about voting and voter eligibility.
The Universal Code of Conduct Coordinating Committee (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members were invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
On behalf of the UCoC project team,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 20:21, 25 اَپریل 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Sign up for the language community meeting on May 31st, 16:00 UTC</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="message"/>Hello all,
The next language community meeting is scheduled in a few weeks - May 31st at 16:00 UTC. If you're interested, you can [https://www.mediawiki.org/w/index.php?title=Wikimedia_Language_engineering/Community_meetings#31_May_2024 sign up on this wiki page].
This is a participant-driven meeting, where we share language-specific updates related to various projects, collectively discuss technical issues related to language wikis, and work together to find possible solutions. For example, in the last meeting, the topics included the machine translation service (MinT) and the languages and models it currently supports, localization efforts from the Kiwix team, and technical challenges with numerical sorting in files used on Bengali Wikisource.
Do you have any ideas for topics to share technical updates related to your project? Any problems that you would like to bring for discussion during the meeting? Do you need interpretation support from English to another language? Please reach out to me at ssethi(__AT__)wikimedia.org and [[etherpad:p/language-community-meeting-may-2024|add agenda items to the document here]].
We look forward to your participation!
<section end="message"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:22, 14 مٔیی 2024 (UTC)
<!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 -->
== <span lang="en" dir="ltr" class="mw-content-ltr"> Feedback invited on Procedure for Sibling Project Lifecycle</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle/Invitation for feedback (MM)|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle/Invitation for feedback (MM)}}&language=&action=page&filter= {{int:please-translate}}]''
[[File:Sibling Project Lifecycle Conversation 3.png|150px|right|link=:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle]]
Dear community members,
The [[:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee|Community Affairs Committee]] (CAC) of the [[:m:Special:MyLanguage/Wikimedia Foundation Board of Trustees|Wikimedia Foundation Board of Trustees]] invites you to give feedback on a '''[[:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle|draft Procedure for Sibling Project Lifecycle]]'''. This draft Procedure outlines proposed steps and requirements for opening and closing Wikimedia Sibling Projects, and aims to ensure any newly approved projects are set up for success. This is separate from the procedures for opening or closing language versions of projects, which is handled by the [[:m:Special:MyLanguage/Language committee|Language Committee]] or [[m:Special:MyLanguage/Closing_projects_policy|closing projects policy]].
You can find the details on [[:m:Special:MyLanguage/Talk:Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle#Review|this page]], as well as the ways to give your feedback from today until the end of the day on '''June 23, 2024''', anywhere on Earth.
You can also share information about this with the interested project communities you work with or support, and you can also help us translate the procedure into more languages, so people can join the discussions in their own language.
On behalf of the CAC,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 02:25, 22 مٔیی 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Announcing the first Universal Code of Conduct Coordinating Committee</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – results|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – results}}&language=&action=page&filter= {{int:please-translate}}]''
Hello,
The scrutineers have finished reviewing the vote results. We are following up with the results of the first [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|Universal Code of Conduct Coordinating Committee (U4C) election]].
We are pleased to announce the following individuals as regional members of the U4C, who will fulfill a two-year term:
* North America (USA and Canada)
** –
* Northern and Western Europe
** [[m:Special:MyLanguage/User:Ghilt|Ghilt]]
* Latin America and Caribbean
** –
* Central and East Europe (CEE)
** —
* Sub-Saharan Africa
** –
* Middle East and North Africa
** [[m:Special:MyLanguage/User:Ibrahim.ID|Ibrahim.ID]]
* East, South East Asia and Pacific (ESEAP)
** [[m:Special:MyLanguage/User:0xDeadbeef|0xDeadbeef]]
* South Asia
** –
The following individuals are elected to be community-at-large members of the U4C, fulfilling a one-year term:
* [[m:Special:MyLanguage/User:Barkeep49|Barkeep49]]
* [[m:Special:MyLanguage/User:Superpes15|Superpes15]]
* [[m:Special:MyLanguage/User:Civvì|Civvì]]
* [[m:Special:MyLanguage/User:Luke081515|Luke081515]]
* –
* –
* –
* –
Thank you again to everyone who participated in this process and much appreciation to the candidates for your leadership and dedication to the Wikimedia movement and community.
Over the next few weeks, the U4C will begin meeting and planning the 2024-25 year in supporting the implementation and review of the UCoC and Enforcement Guidelines. Follow their work on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Meta-wiki]].
On behalf of the UCoC project team,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 08:14, 3 جوٗن 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">The final text of the Wikimedia Movement Charter is now on Meta</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Final draft available|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Final draft available}}&language=&action=page&filter= {{int:please-translate}}]''
Hi everyone,
The final text of the [[m:Special:MyLanguage/Movement Charter|Wikimedia Movement Charter]] is now up on Meta in more than 20 languages for your reading.
'''What is the Wikimedia Movement Charter?'''
The Wikimedia Movement Charter is a proposed document to define roles and responsibilities for all the members and entities of the Wikimedia movement, including the creation of a new body – the Global Council – for movement governance.
'''Join the Wikimedia Movement Charter “Launch Party”'''
Join the [[m:Special:MyLanguage/Event:Movement Charter Launch Party|“Launch Party”]] on '''June 20, 2024''' at '''14.00-15.00 UTC''' ([https://zonestamp.toolforge.org/1718892000 your local time]). During this call, we will celebrate the release of the final Charter and present the content of the Charter. Join and learn about the Charter before casting your vote.
'''Movement Charter ratification vote'''
Voting will commence on SecurePoll on '''June 25, 2024''' at '''00:01 UTC''' and will conclude on '''July 9, 2024''' at '''23:59 UTC.''' You can read more about the [[m:Special:MyLanguage/Movement Charter/Ratification/Voting|voting process, eligibility criteria, and other details]] on Meta.
If you have any questions, please leave a comment on the [[m:Special:MyLanguage/Talk:Movement Charter|Meta talk page]] or email the MCDC at [mailto:mcdc@wikimedia.org mcdc@wikimedia.org].
On behalf of the MCDC,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 08:44, 11 جوٗن 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 -->
== Plans to enable MinT for Wiki readers in Kashmiri Wikipedia ==
{{int:Hello}} Kashmiri Wikipedians!
Apologies as this message is not in your language, {{int:please-translate}}.
The [[mw:Wikimedia_Language_engineering|WMF Language team]] has been working on [[mw:MinT#MinT_for_wiki_readers|MinT for Wiki Readers]]. This feature will allow communities to access more content that is only available in other languages with machine translation in Wikipedia. We will be enabling the initial version of this feature first in Igbo Wikipedia, and your Wikipedia is the next to test and have this feature since it will be beneficial for reading content in other languages. For this, our team would like you to read about the feature and [[:ks:Special:AutomaticTranslation|'''test it''']] so you can:
* Ask us questions
* Tell us how to improve the feature
* Give us your feedback on enabling it in your Wikipedia
'''About the feature'''
The MinT for Wiki Readers is a feature that will allow readers of Kashmiri Wikipedia to expand their reading options and knowledge beyond the language they are familiar with in Wikipedia. For instance, if someone is interested in a topic or content that only exists in the Japanese language and the person is not familiar with the language. While using the mobile web version of Wikipedia, the reader can access the machine translation version of that content in the Kashmiri language from the language selector or the article's footer (as shown in the media files below).
[[File:MinT MVP Language Selector entry point video.webm|Language selector entry point]],
[[File:MinT_MVP_Article_footer_entry_point.png|300px|Article footer entry point]]
These machine-generated translations of content are clearly identified as such, and the human-created content is surfaced and recommended if available.
This feature is in its initial development. It is an early and functional version, and many aspects will be improved based on your community member's feedback on what works and what can be improved to better support your needs as readers.
'''How to try the tool'''
Before we enable this feature in your Wikipedia by the 26th June 2024, we invite members of your community to try MinT for Wiki Readers in your Wikipedia at [[:ks:Special:AutomaticTranslation|Special:AutomaticTranslation]] and give us early feedback in this thread or on [[mw:Talk:MinT#Feedback_from_Wikipedians_about_MinT_for_Wiki_Readers|this talk page]]. Our team would like to know your impression on:
* How do you use the feature
* Anything we should consider for our plans to enable it?
* Your ideas for improving it.
We greatly appreciate your time and effort in testing this tool. We eagerly look forward to your valuable feedback and questions, which will be instrumental in the further development of this feature. Thank you.
On behalf of the WMF Language team
[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 22:26, 13 جوٗن 2024 (UTC)
:Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] Thankyou for informing us about this feature. I have tried it and it gives good results in case of city and village related articles. I am hopeful it will help readers to read articles in Kashmiri that are not existing on Ks Wiki. I was hoping if we have a feature of from which readers can review or make slight changes in it and then publish. It will also help this wiki grow and also encourage readers to turn editors. Thankyou. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 07:53, 20 جوٗن 2024 (UTC)
::Thank you @[[رُکُن:511KeV|511KeV]] for your feedback.
::At the moment, the alternative we provide is to write a human-created translation of the contents with Content Translation which also has an entry point from the language selector. This does not cover the use-case of making a small, quick fix when finding an issue in a machine translated content. We have plans to support this with community-provided translations (more details in [[phab:T351748|this ticket]]). In this way, users can make a correction to the specific translation of a sentence, and that correction will be incorporated to a translation memory system, making it immediately available for future machine translation requests. Creating this system is exciting since it can help to improve machine translation quality, but it is not a trivial effort, so it will still take some time. Please, feel free to subscribe to the linked .ticket and share any comments or suggestions
Since there are no objections to having this feature, we will go ahead and enable it in this Wikipedia.
[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 03:21, 26 جوٗن 2024 (UTC)
== <span lang="en" dir="ltr" class="mw-content-ltr">Voting to ratify the Wikimedia Movement Charter is now open – cast your vote</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Ratification vote opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Ratification vote opens}}&language=&action=page&filter= {{int:please-translate}}]''
Hello everyone,
The voting to ratify the [[m:Special:MyLanguage/Movement Charter|'''Wikimedia Movement Charter''']] is now open. The Wikimedia Movement Charter is a document to define roles and responsibilities for all the members and entities of the Wikimedia movement, including the creation of a new body – the Global Council – for movement governance.
The final version of the Wikimedia Movement Charter is [[m:Special:MyLanguage/Movement Charter|available on Meta in different languages]] and attached [https://commons.wikimedia.org/wiki/File:Wikimedia_Movement_Charter_(June_2024).pdf here in PDF format] for your reading.
Voting commenced on SecurePoll on '''June 25, 2024''' at '''00:01 UTC''' and will conclude on '''July 9, 2024''' at '''23:59 UTC'''. Please read more on the [[m:Special:MyLanguage/Movement Charter/Ratification/Voting|voter information and eligibility details]].
After reading the Charter, please [[Special:SecurePoll/vote/398|'''vote here''']] and share this note further.
If you have any questions about the ratification vote, please contact the Charter Electoral Commission at [mailto:cec@wikimedia.org '''cec@wikimedia.org'''].
On behalf of the CEC,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 10:51, 25 جوٗن 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Voting to ratify the Wikimedia Movement Charter is ending soon</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Final reminder|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Final reminder}}&language=&action=page&filter= {{int:please-translate}}]''
Hello everyone,
This is a kind reminder that the voting period to ratify the [[m:Special:MyLanguage/Movement Charter|Wikimedia Movement Charter]] will be closed on '''July 9, 2024''', at '''23:59 UTC'''.
If you have not voted yet, please vote [[m:Special:SecurePoll/vote/398|on SecurePoll]].
On behalf of the [[m:Special:MyLanguage/Movement_Charter/Ratification/Voting#Electoral_Commission|Charter Electoral Commission]],<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 03:45, 8 جُلَے 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">U4C Special Election - Call for Candidates</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – call for candidates|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – call for candidates}}&language=&action=page&filter= {{int:please-translate}}]''
Hello all,
A special election has been called to fill additional vacancies on the U4C. The call for candidates phase is open from now through July 19, 2024.
The [[:m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the [[:foundation:Wikimedia Foundation Universal Code of Conduct|UCoC]]. Community members are invited to submit their applications in the special election for the U4C. For more information and the responsibilities of the U4C, please review the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|U4C Charter]].
In this special election, according to [[Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter#2. Elections and Terms|chapter 2 of the U4C charter]], there are 9 seats available on the U4C: '''four''' community-at-large seats and '''five''' regional seats to ensure the U4C represents the diversity of the movement. [[Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter#5. Glossary|No more than two members of the U4C can be elected from the same home wiki]]. Therefore, candidates must not have English Wikipedia, German Wikipedia, or Italian Wikipedia as their home wiki.
Read more and submit your application on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|Meta-wiki]].
In cooperation with the U4C,<section end="announcement-content" />
</div>
-- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 00:03, 10 جُلَے 2024 (UTC)
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Wikimedia Movement Charter ratification voting results</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Results of the ratification vote|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Results of the ratification vote}}&language=&action=page&filter= {{int:please-translate}}]''
Hello everyone,
After carefully tallying both individual and affiliate votes, the [[m:Special:MyLanguage/Movement Charter/Ratification/Voting#Electoral Commission|Charter Electoral Commission]] is pleased to announce the final results of the Wikimedia Movement Charter voting.
As [[m:Special:MyLanguage/Talk:Movement Charter#Thank you for your participation in the Movement Charter ratification vote!|communicated]] by the Charter Electoral Commission, we reached the quorum for both Affiliate and individual votes by the time the vote closed on '''July 9, 23:59 UTC'''. We thank all 2,451 individuals and 129 Affiliate representatives who voted in the ratification process. Your votes and comments are invaluable for the future steps in Movement Strategy.
The final results of the [[m:Special:MyLanguage/Movement Charter|Wikimedia Movement Charter]] ratification voting held between 25 June and 9 July 2024 are as follows:
'''Individual vote:'''
Out of 2,451 individuals who voted as of July 9 23:59 (UTC), 2,446 have been accepted as valid votes. Among these, '''1,710''' voted “yes”; '''623''' voted “no”; and '''113''' selected “–” (neutral). Because the neutral votes don’t count towards the total number of votes cast, 73.30% voted to approve the Charter (1710/2333), while 26.70% voted to reject the Charter (623/2333).
'''Affiliates vote:'''
Out of 129 Affiliates designated voters who voted as of July 9 23:59 (UTC), 129 votes are confirmed as valid votes. Among these, '''93''' voted “yes”; '''18''' voted “no”; and '''18''' selected “–” (neutral). Because the neutral votes don’t count towards the total number of votes cast, 83.78% voted to approve the Charter (93/111), while 16.22% voted to reject the Charter (18/111).
'''Board of Trustees of the Wikimedia Foundation:'''
The Wikimedia Foundation Board of Trustees voted '''not to ratify''' the proposed Charter during their special Board meeting on July 8, 2024. The Chair of the Wikimedia Foundation Board of Trustees, Nataliia Tymkiv, [[m:Special:MyLanguage/Wikimedia_Foundation_Board_noticeboard/Board_resolution_and_vote_on_the_proposed_Movement_Charter|shared the result of the vote, the resolution, meeting minutes and proposed next steps]].
With this, the Wikimedia Movement Charter in its current revision is '''not ratified'''.
We thank you for your participation in this important moment in our movement’s governance.
The Charter Electoral Commission,
[[m:User:Abhinav619|Abhinav619]], [[m:User:Borschts|Borschts]], [[m:User:Iwuala Lucy|Iwuala Lucy]], [[m:User:Tochiprecious|Tochiprecious]], [[m:User:Der-Wir-Ing|Der-Wir-Ing]]<section end="announcement-content" />
</div>
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 17:52, 18 جُلَے 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 -->
== شےٚ رؠتھ مَنصوٗبہٕ ==
السلام علیکم، بہٕ چھُس وۄمید کران زِ تُہؠ سٲری چھِو اصل پٲٹھؠ۔ بہٕ چھُس لیکھان کٲشِرؠ وِکیمیڈیَنن ہٕنٛدِس 6 رؠتن ہٕنٛدِس سرگرمی منصوبس مُتلِق. یہِ مَنصوٗبہٕ چھُ میٹا وِکی پؠٹھ دٔستیاب. تُہؠ چھِ داوتھ یوان دِنہٕ زِ تُہؠ دِیو اَتھ نَظر تہِ دِیو راے. اَمیچ لینک چھ. [[:m:Kashmiri Wikimedians User Group/Activity plan/October 2024 - March 2025|یَتھ جاے]]. شُکریا. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 05:05, 26 جُلَے 2024 (UTC)
== <span lang="en" dir="ltr" class="mw-content-ltr">Vote now to fill vacancies of the first U4C</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – voting opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – voting opens}}&language=&action=page&filter= {{int:please-translate}}]''
Dear all,
I am writing to you to let you know the voting period for the Universal Code of Conduct Coordinating Committee (U4C) is open now through '''August 10, 2024'''. Read the information on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|voting page on Meta-wiki]] to learn more about voting and voter eligibility.
The Universal Code of Conduct Coordinating Committee (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members were invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
In cooperation with the U4C,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 02:47, 27 جُلَے 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Reminder! Vote closing soon to fill vacancies of the first U4C</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – reminder to vote|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – reminder to vote}}&language=&action=page&filter= {{int:please-translate}}]''
Dear all,
The voting period for the Universal Code of Conduct Coordinating Committee (U4C) is closing soon. It is open through 10 August 2024. Read the information on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2024_Special_Election#Voting|the voting page on Meta-wiki to learn more about voting and voter eligibility]]. If you are eligible to vote and have not voted in this special election, it is important that you vote now.
'''Why should you vote?''' The U4C is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community input into the committee membership is critical to the success of the UCoC.
Please share this message with members of your community so they can participate as well.
In cooperation with the U4C,<section end="announcement-content" />
</div>
-- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 15:30, 6 اَگَست 2024 (UTC)
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 -->
== <span lang="en" dir="ltr">Coming soon: A new sub-referencing feature – try it!</span> ==
<div lang="en" dir="ltr">
<section begin="Sub-referencing"/>
[[File:Sub-referencing reuse visual.png|{{#ifeq:{{#dir}}|ltr|right|left}}|400px]]
Hello. For many years, community members have requested an easy way to re-use references with different details. Now, a MediaWiki solution is coming: The new sub-referencing feature will work for wikitext and Visual Editor and will enhance the existing reference system. You can continue to use different ways of referencing, but you will probably encounter sub-references in articles written by other users. More information on [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|the project page]].
'''We want your feedback''' to make sure this feature works well for you:
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#Test|Please try]] the current state of development on beta wiki and [[m:Talk:WMDE Technical Wishes/Sub-referencing|let us know what you think]].
* [[m:WMDE Technical Wishes/Sub-referencing/Sign-up|Sign up here]] to get updates and/or invites to participate in user research activities.
[[m:Special:MyLanguage/Wikimedia Deutschland|Wikimedia Deutschland]]’s [[m:Special:MyLanguage/WMDE Technical Wishes|Technical Wishes]] team is planning to bring this feature to Wikimedia wikis later this year. We will reach out to creators/maintainers of tools and templates related to references beforehand.
Please help us spread the message. --[[m:User:Johannes Richter (WMDE)|Johannes Richter (WMDE)]] ([[m:User talk:Johannes Richter (WMDE)|talk]]) 10:36, 19 August 2024 (UTC)
<section end="Sub-referencing"/>
</div>
<!-- Message sent by User:Johannes Richter (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Johannes_Richter_(WMDE)/Sub-referencing/massmessage_list&oldid=27309345 -->
== Sign up for the language community meeting on August 30th, 15:00 UTC ==
Hi all,
The next language community meeting is scheduled in a few weeks—on August 30th at 15:00 UTC. If you're interested in joining, you can [https://www.mediawiki.org/wiki/Wikimedia_Language_and_Product_Localization/Community_meetings#30_August_2024 sign up on this wiki page].
This participant-driven meeting will focus on sharing language-specific updates related to various projects, discussing technical issues related to language wikis, and working together to find possible solutions. For example, in the last meeting, topics included the Language Converter, the state of language research, updates on the Incubator conversations, and technical challenges around external links not working with special characters on Bengali sites.
Do you have any ideas for topics to share technical updates or discuss challenges? Please add agenda items to the document [https://etherpad.wikimedia.org/p/language-community-meeting-aug-2024 here] and reach out to ssethi(__AT__)wikimedia.org. We look forward to your participation!
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 23:19, 22 اَگَست 2024 (UTC)
<!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 -->
== <span lang="en" dir="ltr">Announcing the Universal Code of Conduct Coordinating Committee</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
:''[https://lists.wikimedia.org/hyperkitty/list/board-elections@lists.wikimedia.org/thread/OKCCN2CANIH2K7DXJOL2GPVDFWL27R7C/ Original message at wikimedia-l]. [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement - results|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement - results}}&language=&action=page&filter= {{int:please-translate}}]''
Hello all,
The scrutineers have finished reviewing the vote and the [[m:Special:MyLanguage/Elections Committee|Elections Committee]] have certified the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Results|results]] for the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|Universal Code of Conduct Coordinating Committee (U4C) special election]].
I am pleased to announce the following individual as regional members of the U4C, who will fulfill a term until 15 June 2026:
* North America (USA and Canada)
** Ajraddatz
The following seats were not filled during this special election:
* Latin America and Caribbean
* Central and East Europe (CEE)
* Sub-Saharan Africa
* South Asia
* The four remaining Community-At-Large seats
Thank you again to everyone who participated in this process and much appreciation to the candidates for your leadership and dedication to the Wikimedia movement and community.
Over the next few weeks, the U4C will begin meeting and planning the 2024-25 year in supporting the implementation and review of the UCoC and Enforcement Guidelines. You can follow their work on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Meta-Wiki]].
On behalf of the U4C and the Elections Committee,<section end="announcement-content" />
</div>
[[m:User:RamzyM (WMF)|RamzyM (WMF)]] 14:06, 2 سَتَمبَر 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 -->
== <span lang="en" dir="ltr">Have your say: Vote for the 2024 Board of Trustees!</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Hello all,
The voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|2024 Board of Trustees election]] is now open. There are twelve (12) candidates running for four (4) seats on the Board.
Learn more about the candidates by [[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Candidates|reading their statements]] and their [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Questions_for_candidates|answers to community questions]].
When you are ready, go to the [[Special:SecurePoll/vote/400|SecurePoll]] voting page to vote. '''The vote is open from September 3rd at 00:00 UTC to September 17th at 23:59 UTC'''.
To check your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Voter_eligibility_guidelines|voter eligibility page]].
Best regards,
The Elections Committee and Board Selection Working Group<section end="announcement-content" />
</div>
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 12:14, 3 سَتَمبَر 2024 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 -->
== <span lang="en" dir="ltr">Your wiki will be in read-only soon</span> ==
<div lang="en" dir="ltr">
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster.
All traffic will switch on '''{{#time:j xg|2024-09-25|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2024-09-25T15:00|en}} {{#time:H:i e|2024-09-25T15:00}}]'''.
Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2024-09-25|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule.
'''Please share this information with your community.'''</div><section end="server-switch"/>
</div>
[[User:Trizek_(WMF)|Trizek_(WMF)]], 09:37, 20 سَتَمبَر 2024 (UTC)
<!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27248326 -->
== 'Wikidata item' link is moving. Find out where... ==
<div lang="en" dir="ltr" class="mw-content-ltr"><i>Apologies for cross-posting in English. Please consider translating this message.</i>{{tracked|T66315}}
Hello everyone, a small change will soon be coming to the user-interface of your Wikimedia project.
The [[d:Q16222597|Wikidata item]] [[w:|sitelink]] currently found under the <span style="color: #54595d;"><u>''General''</u></span> section of the '''Tools''' sidebar menu will move into the <span style="color: #54595d;"><u>''In Other Projects''</u></span> section.
We would like the Wiki communities feedback so please let us know or ask questions on the [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Discussion page]] before we enable the change which can take place October 4 2024, circa 15:00 UTC+2.
More information can be found on [[m:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|the project page]].<br><br>We welcome your feedback and questions.<br> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 18:56, 27 سَتَمبَر 2024 (UTC)
</div>
<!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=27524260 -->
== Invitation to Participate in Wiki Loves Ramadan Community Engagement Survey ==
Dear all,
Apologies for writing in English. Please help to translate in your language.
We are excited to announce the upcoming [[m:Wiki Loves Ramadan|Wiki Loves Ramadan]] event, a global initiative aimed at celebrating Ramadan by enriching Wikipedia and its sister projects with content related to this significant time of year. As we plan to organize this event globally, your insights and experiences are crucial in shaping the best possible participation experience for the community.
To ensure that Wiki Loves Ramadan is engaging, inclusive, and impactful, we kindly invite you to participate in our community engagement survey. Your feedback will help us understand the needs of the community, set the event's focus, and guide our strategies for organizing this global event.
Survey link: https://forms.gle/f66MuzjcPpwzVymu5
Please take a few minutes to share your thoughts. Your input will make a difference!
Thank you for being a part of our journey to make Wiki Loves Ramadan a success.
Warm regards,
User:ZI Jony 03:20, 6 اَکتوٗبَر 2024 (UTC)
Wiki Loves Ramadan Organizing Team
<!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27510935 -->
== <span lang="en" dir="ltr">Preliminary results of the 2024 Wikimedia Foundation Board of Trustees elections</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Hello all,
Thank you to everyone who participated in the [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|2024 Wikimedia Foundation Board of Trustees election]]. Close to 6000 community members from more than 180 wiki projects have voted.
The following four candidates were the most voted:
# [[User:Kritzolina|Christel Steigenberger]]
# [[User:Nadzik|Maciej Artur Nadzikiewicz]]
# [[User:Victoria|Victoria Doronina]]
# [[User:Laurentius|Lorenzo Losa]]
While these candidates have been ranked through the vote, they still need to be appointed to the Board of Trustees. They need to pass a successful background check and meet the qualifications outlined in the Bylaws. New trustees will be appointed at the next Board meeting in December 2024.
[[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Results|Learn more about the results on Meta-Wiki.]]
Best regards,
The Elections Committee and Board Selection Working Group
<section end="announcement-content" />
</div>
[[User:MPossoupe_(WMF)|MPossoupe_(WMF)]] 08:25, 14 اَکتوٗبَر 2024 (UTC)
<!-- Message sent by User:MPossoupe (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 -->
== <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Each year, typically from October through December, several of the movement’s committees seek new volunteers.
Read more about the committees on their Meta-wiki pages:
* [[m:Special:MyLanguage/Affiliations_Committee|Affiliations Committee (AffCom)]]
* [[m:Special:MyLanguage/Ombuds_commission|Ombuds commission (OC)]]
* [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]]
Applications for the committees open on 16 October 2024. Applications for the Affiliations Committee close on 18 November 2024, and applications for the Ombuds commission and the Case Review Committee close on 2 December 2024. Learn how to apply by [[m:Special:MyLanguage/Wikimedia_Foundation/Legal/Committee_appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email [mailto:cst@wikimedia.org cst@wikimedia.org] with any questions you may have.
For the Committee Support team,
<section end="announcement-content" />
</div>
-- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 23:08, 16 اَکتوٗبَر 2024 (UTC)
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27601062 -->
== Announcing Indic Wikimedia Hackathon Bhubaneswar 2024 & scholarship applications ==
Dear Wikimedians,
We hope you are well.
We are thrilled to announce the upcoming [[:metawiki:Indic Wikimedia Hackathon Bhubaneswar 2024|Indic Wikimedia Hackathon Bhubaneswar 2024]], hosted by the [[:metawiki:Indic MediaWiki Developers User Group|Indic MediaWiki Developers UG]] (aka Indic-TechCom) in collaboration with the [[:metawiki:Odia Wikimedians User Group|Odia Wikimedians UG]]. The event will take place in Bhubaneswar during 20-22 December 2024.
Wikimedia hackathons are spaces for developers, designers, content editors, and other community stakeholders to collaborate on building technical solutions that help improve the experience of contributors and consumers of Wikimedia projects. The event is intended for:
* Technical contributors active in the Wikimedia technical ecosystem, which includes developers, maintainers (admins/interface admins), translators, designers, researchers, documentation writers etc.
* Content contributors having in-depth understanding of technical issues in their home Wikimedia projects like Wikipedia, Wikisource, Wiktionary, etc.
* Contributors to any other FOSS community or have participated in Wikimedia events in the past, and would like to get started with contributing to Wikimedia technical spaces.
We encourage you to follow the essential details & updates on Meta-Wiki regarding this event.
Event Meta-Wiki page: https://meta.wikimedia.org/wiki/Indic_Wikimedia_Hackathon_Bhubaneswar_2024
Scholarship application form: [https://docs.google.com/forms/d/e/1FAIpQLSf07lWyPJc6bxOCKl_i2vuMBdWa9EAzMRUej4x1ii3jFjTIaQ/viewform Click here to apply ]
''(Scholarships are available to assist with your attendance, covering travel, accommodation, food, and related expenses.)''
Please read the application guidance on the Meta-Wiki page before applying.
The scholarship application is open until the end of the day 2 November 2024 (Saturday).
If you have any questions, concerns or need any support with the application, please start a discussion on the event talk page or reach out to us contact@indicmediawikidev.org via email.
Best,
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 09:35, 19 اَکتوٗبَر 2024 (UTC)
<!-- Message sent by User:KCVelaga@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/South_Asia_Village_Pumps&oldid=25720607 -->
== 'Wikidata item' link is moving, finally. ==
Hello everyone, I previously wrote on the 27th September to advise that the ''Wikidata item'' sitelink will change places in the sidebar menu, moving from the '''General''' section into the '''In Other Projects''' section. The scheduled rollout date of 04.10.2024 was delayed due to a necessary request for Mobile/MinervaNeue skin. I am happy to inform that the global rollout can now proceed and will occur later today, 22.10.2024 at 15:00 UTC-2. [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Please let us know]] if you notice any problems or bugs after this change. There should be no need for null-edits or purging cache for the changes to occur. Kind regards, -[[m:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] 11:28, 22 اَکتوٗبَر 2024 (UTC)
<!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=27535421 -->
== پروگرام خٲطرٕ ایونٹ منیجر ضروٗرت ==
کٲشِرؠ وِکیٖمیٖڈیا صٲرِف جَمٲژ چھِ پننہِ پروگرام خٲطرٕ ایونٹ منیجر ضروٗرت۔ اگر تۄہہِ دِلچسپی چھِو تیٚلہِ ہیٚکِو تُہؠ درخواست دِتھ. اَتھ مَنٛز ییٚہِ رؠتہ پَتہٕ رؠتہٕ 5 ساس رۄپیہ وظیفہ طور دِنہٕ۔ تُہؠ ہیٚکِو میٹا وکی پؠٹھ کِردارس مُتعلِق مٔزیٖد تفصیٖل لٔبِتھ. [[:meta:Kashmiri_Wikimedians_User_Group/Vacancies#Event_Manager_Vacancy|یَتھ صَفس پؠٹھ.]] <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 13:44, 23 اَکتوٗبَر 2024 (UTC)
== Final Reminder: Join us in Making Wiki Loves Ramadan Success ==
Dear all,
We’re thrilled to announce the Wiki Loves Ramadan event, a global initiative to celebrate Ramadan by enhancing Wikipedia and its sister projects with valuable content related to this special time of year. As we organize this event globally, we need your valuable input to make it a memorable experience for the community.
Last Call to Participate in Our Survey: To ensure that Wiki Loves Ramadan is inclusive and impactful, we kindly request you to complete our community engagement survey. Your feedback will shape the event’s focus and guide our organizing strategies to better meet community needs.
* Survey Link: [https://docs.google.com/forms/d/e/1FAIpQLSffN4prPtR5DRSq9nH-t1z8hG3jZFBbySrv32YoxV8KbTwxig/viewform?usp=sf_link Complete the Survey]
* Deadline: November 10, 2024
Please take a few minutes to share your thoughts. Your input will truly make a difference!
'''Volunteer Opportunity''': Join the Wiki Loves Ramadan Team! We’re seeking dedicated volunteers for key team roles essential to the success of this initiative. If you’re interested in volunteer roles, we invite you to apply.
* Application Link: [https://docs.google.com/forms/d/e/1FAIpQLSfXiox_eEDH4yJ0gxVBgtL7jPe41TINAWYtpNp1JHSk8zhdgw/viewform?usp=sf_link Apply Here]
* Application Deadline: October 31, 2024
Explore Open Positions: For a detailed list of roles and their responsibilities, please refer to the position descriptions here: [https://docs.google.com/document/d/1oy0_tilC6kow5GGf6cEuFvdFpekcubCqJlaxkxh-jT4/ Position Descriptions]
Thank you for being part of this journey. We look forward to working together to make Wiki Loves Ramadan a success!
Warm regards,<br>
The Wiki Loves Ramadan Organizing Team 05:11, 29 اَکتوٗبَر 2024 (UTC)
<!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27568454 -->
== Proposal to enable the "Contribute" entry point in Kashmiri Wikipedia ==
{{Int:Hello}} Kashmiri Wikipedians,
Apologies as this message is not in your language. {{Int:please-translate}}.
The [[mediawikiwiki:Wikimedia_Language_and_Product_Localization|WMF Language and Product Localization]] team proposes enabling an entry point called "Contribute" to your Wikipedia.
The [[:bn:বিশেষ:Contribute|Contribute]] entry point is based on collaborative work with other product teams in the Wikimedia Foundation on [[mediawikiwiki:Edit_Discovery|Edit discovery]], which validated the entry point as a persistent and constant path that contributors took to discover ways to contribute content in Wikipedia.
Therefore, enabling this entry point in your Wikipedia will help contributors quickly discover available tools and immediately click to start using them. This entry point is designed to be a central point for discovering contribution tools in Kashmiri Wikipedia.
'''Who can access it'''
Once it is enabled in your Wikipedia, newcomers can access the entry point automatically by just logging into their account, click on the User drop-down menu and choose the "Contribute" icon, which takes you to another menu where you will find a self-guided description of what you can do to contribute content, as shown in the image below. An option to "view contributions" is also available to access the list of your contributions.
[[فَیِل:Mobile_Contribute_Page.png|link=https://bar.wikipedia.org/wiki/Datei:Mobile_Contribute_Page.png|Mobile Contribute Page]] [[فَیِل:Mobile_contribute_menu_(detailed).png|link=https://bar.wikipedia.org/wiki/Datei:Mobile_contribute_menu_(detailed).png|Mobile contribute menu (detailed)]]
For experienced contributors, the Contribute icon is not automatically shown in their User drop-down menu. They will still see the "Contributions" option unless they change it to the "Contribute" manually.
This feature is available in four Wikipedia (Albanian, Malayalam, Mongolian, and Tagalog). We have gotten valuable feedback that helped us improve its discoverability. Now, it is ready to be enabled in other Wikis. One major improvement was to [[phab:T369041|make the entry point optional for experienced contributors]] who still want to have the "Contributions" entry point as default.
We plan to enable it '''on mobile''' for Wikis, where the Section translation tool is enabled. In this way, we will provide a main entry point to the mobile translation dashboard, and the exposure can still be limited by targeting only the mobile platform for now. If there are no objections to having the entry point for mobile users from your community, we will enable it by 20th November 2024.
We welcome your feedback and questions in this thread on our proposal to enable it here. Suppose there are no objections, we will deploy the "Contribute" entry point in your Wikipedia.
We look forward to your response soon.
Thank you!
On behalf of the WMF Language and Product Localization team. [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 01:39, 7 نَوَمبَر 2024 (UTC)
:Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] Thankyou for sharing this news. I personally support this feature. I have also prvided a summary for other users in Kashmiri below.
:(Summary in Kashmiri)
:وکیمیڈیا فاؤنڈیشنٕچ لینگویج اینڈ پروڈکٹ لوکلائزیشن ٹیم چھِ کٲشِرؠ وکیپیڈیا خٲطرٕ اکھ "کنٹریبیوٹ" انٹری پوائنٹ تجویز کران تاکہِ شراکتٕک اوزار زِیٛادٕ دسترس بناونہٕ۔ یہِ نوٚو فیچر چھُ مُختٔلِف پروڈکٹ ٹیمَن ہٕنٛدِ اشتراک سۭتؠ تیار کرنہٕ آمُت تہٕ امیُک تجربہٕ چھُ باقی وکیپیڈیاہَن (البانی، ملیالم، منگولین تہٕ تاگالوگ) پٮ۪ٹھ کرنہٕ آمُت، ییٚتہِ أمِس شراکت دارَن آسٲنی سان حصہٕ نِنٕکؠ طریقہٕ ژھارنَس منٛز مدد کرنہٕ خٲطرٕ مثبت راے مِلے۔ "کنٹریبیوٹ" انٹری پویِنٹ گژھِ پٲنؠ پانے نَوین والین باپت ظٲہِر، یُس تِمن پننِس یوزر مینو پیٹھ شراکتٕک آپشنن ذریعہٕ رہنمائی کران چُھ۔ تجرُبہٕ کار یوزر روزن واقف "کنٹریبیوشن" اوپشن برقرار مگر اگر تِم ژارنْہ یِن تِم ہیکن نْوِس "کنٹریبیوٹ" فیچرس کُن تبدیل کْرتھ۔ موبایلس پیٹھ، یہ فیچر فراہم کرِ فوری ایسیس ٹرانسلیشن ڈیش بورڈس تام وکی باپت یتھ منز سیکشن ٹرانسلیشن ٹول اینیبلْڈ آسِہ۔ اگر نہٕ کانٛہہ اعتِراض آسہِ، یہِ فیچر یِیہِ 20 نومبر 2024 ہَس تام موبایِل صارفینَن خٲطرٕ کٲشِرِ وِکیٖپیٖڈیاہَس پٮ۪ٹھ لانچ کرنہٕ۔ فیڈ بیک تہٕ سوالاتن چُھ خوش آمدید۔
:Thankyou :) <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 14:05, 7 نَوَمبَر 2024 (UTC)
== Announcing Wikifile-transfer v2, and second community call ==
Dear Wikimedia Community,
We are excited to announce the release of Wikifile-transfer v2, an enhanced tool to streamline media transfers across Wikimedia projects. Wikifile-transfer supports users in moving non-free images across wiki projects. This tool is helpful for contributors managing media across multiple language wikis.
'''You can learn more about it here:''' https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/Wikifile-transfer/v2
'''You can try the new version here:''' https://wikifile-transfer.toolforge.org/#/
We invite you to join our second community call on '''November 10, 2024, at 18:00 IST (6:00 PM)'''. This meeting is an opportunity to discuss the new features, share feedback, and connect with us.
Please add your name at https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/Wikifile-transfer/v2#Community_call.
Since this is a major new release, some bugs may still exist. We encourage you to report any issues you encounter to help us improve the tool further. We're looking forward to your feedback as we continue refining WikiFile-Transfer to meet the needs of our community.
Regards -[[رُکُن:ParasharSarthak|ParasharSarthak]] ([[رُکُن کَتھ:ParasharSarthak|کَتھ صَفہٕ]])
== وکیپیڈیاہُک تعارُف پروگرام ==
أسؠ چھِ یہِ اعلان کران خوشی زِ کٲشِرؠ وکیمیڈینز یوزر گروپ کَرِ "وکیپیڈیاہُک تعارُف" ناوٕ سٟتؠ اکھ آن لائن سیشنچ میزبٲنی۔ یہِ سیشن چھُ حصہٕ نِنہٕ والؠن وکیپیڈیاہَس سٟتؠ تعارُف کرنہٕ خٲطرٕ تَخلیق کرنہٕ آمُت، یَتھ منٛز ترمیم تہٕ موثر طریقہٕ سٟتؠ تعاون کرنہٕ خٲطرٕ ضروٗری موضوعات شٲمِ آسَن۔
<big>پروگرام تفصیل:</big>
*تٲریخ: 17 نومبر 2024
*وَقٕت: شامَس 7:00 بجے – 8:00 شام ہندوستان وَقٕت مُطٲبِق
*پلیٹ فارم: گوگل میٹ ([https://meet.google.com/uvi-uoew-nqp یَتھ لِنک پؠٹھ])
یہِ سیشن چھُ تٔمِس شخصہٕ سٕنٛدِ خٲطرٕ بہتٔریٖن یُس وِکیٖپیٖڈیاہٕچ بُنیٲدی چیز ہیٚچھُن یژھان چھُ، یَتھ منٛز کھاتہٕ بناوُن، وِکیٖپیٖڈیاہٕک ہِدایَت سمجھُن، تہٕ پلیٹ فارمَس پٮ۪ٹھ نیویگیٹ کرُن شٲمِل چھُ۔ چاہے تُہؠ وِکیٖپیٖڈیاہَس منٛز نٔوؠ ٲسِو یا پنٕنؠ تفہیم گٔنؠ کرُن یژھان، أسؠ چھِ تُہنٛدِ شرکتُک خیر مقدم کران۔
مہربٲنی کٔرِتھ کٔرِو آزاد زِ اگر تۄہہِ کانٛہہ سوال چھُو۔ أسؠ چھِو تۄہہِ تَتہِ وُچھنُک منتظر! شُکریا۔ <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 16:29, 12 نَوَمبَر 2024 (UTC)
== Sign up for the language community meeting on November 29th, 16:00 UTC ==
Hello everyone,
The next language community meeting is coming up next week, on November 29th, at 16:00 UTC (Zonestamp! For your timezone <https://zonestamp.toolforge.org/1732896000>). If you're interested in joining, you can sign up on this wiki page: <https://www.mediawiki.org/wiki/Wikimedia_Language_and_Product_Localization/Community_meetings#29_November_2024>.
This participant-driven meeting will be organized by the Wikimedia Foundation’s Language Product Localization team and the Language Diversity Hub. There will be presentations on topics like developing language keyboards, the creation of the Moore Wikipedia, and the language support track at Wiki Indaba. We will also have members from the Wayuunaiki community joining us to share their experiences with the Incubator and as a new community within our movement. This meeting will have a Spanish interpretation.
Looking forward to seeing you at the language community meeting! Cheers, [[User:SSethi (WMF)|Srishti]] 19:54, 21 نَوَمبَر 2024 (UTC)
<!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27746256 -->
== [[:m:Expressions of Interest to host Wikimania 2027 in India: Initial conversation|Expressions of Interest to host Wikimania 2027 in India: Initial conversation]] ==
<div lang="en" dir="ltr">
''{{int:please-translate}}''
Dear Wikimedians,
We are excited to '''Initiate the discussions about India’s potential bid to host [[:m:Wikimania 2027|Wikimania 2027]]''', the annual international conference of the Wikimedia movement. This is a call to the community to express interest and share ideas for organizing this flagship event in India.
Having a consortium of a good number of country groups, recognised affiliates, thematic groups or regional leaders primarily from Asia for this purpose will ultimately strengthen our proposal from the region. This is the first step in a collaborative journey. We invite all interested community members to contribute to the discussion, share your thoughts, and help shape the vision for hosting Wikimania 2027 in India.
Your participation will ensure this effort reflects the strength and diversity of the Indian Wikimedia community. Please join the conversation on [[:m:Expressions of Interest to host Wikimania 2027 in India: Initial conversation#Invitation to Join the Conversation|Meta page]] and help make this vision a reality!
Regards,
<br>
[[:m:Wikimedians of Kerala|Wikimedians of Kerala User Group]] and [[:m:Odia Wikimedians User Group|Odia Wikimedians User Group]]
<br>
This message was sent with [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) by [[m:User:Gnoeee|Gnoeee]] ([[m:User_talk:Gnoeee|talk]]) 15:14, 4 دَسَمبَر 2024 (UTC)
</div>
<!-- Message sent by User:Gnoeee@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Indic_VPs&oldid=27906962 -->
== تَرجَمہ مَواد تہٕ مَضمون تَخلیٖق ؤرکشاپ ==
کٲشِرؠ وِکیمیڈینز،
اسہِ چھِ یہِ اعلان کران خوشی زِ کٲشِرۍ وکیمیڈینز یوزر گروپ کَرِ "کنٹینٹ ٹرانسلیشن ٹول اینڈ آرٹیکل کرییشن ورکشاپ" ناوٕ سۭتۍ اکھ آن لائن سیشن ہٕنٛز میزبٲنی۔ یہِ سیشن چھُ شرکاء وکیپیڈیا کِس کنٹینٹ ٹرانسلیشن ٹوٗلَس سۭتۍ تعارُف کرنہٕ تہٕ معیٲری مضموٗن مؤثر طریقہٕ سۭتۍ بناونس منٛز تِہنٛز رہنُمٲیی کرنہٕ خٲطرٕ ڈیزائن کرنہٕ آمُت۔
سیشن تفصیل:
*تٲریخ: 29 دسمبر 2024 (آتھوار)
*ٹایِم: شامَس 7:00 بجے – 8:00 PM IST
*پلیٹ فارم: گوگل میٹ (https://meet.google.com/gkq-rhgo-chu)
یہِ ورکشاپ چھِ تٔمِس شخصہٕ سٕنٛدِ خٲطرٕ بہتٔریٖن یُس کنٹینٹ ٹرانسلیشن ٹوٗلُک استعمال کٔرِتھ مضامیٖنَن ہُنٛد ترجمہٕ کٲشِرۍ منٛز کرُن ہیٚچھنَس منٛز دلچسپی تھاوان چھُ، سۭتۍ سۭتۍ چھِ مضموٗنٕچ تخلیقٕچ بُنیٲدی تہٕ وکیپیڈیا کٮ۪ن ہدایاتَن منٛز مہارت حٲصِل چاہے تُہۍ شُروٗع کَرن وٲلۍ ٲسِو یا پنٕنۍ ترمیم کرنٕچ ہُنر بڑاوٕنۍ یژھان، أسۍ چھِ تُہنٛدِ شرکتُک خیر مقدم کران۔
اگر تۄہہِ کانٛہہ سوال چھُو، تیٚلہِ کٔرِو وٲتِتھ آزاد ۔ أسۍ چھِو تۄہہِ تَتہِ وُچھنُک منتظر! <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 03:57, 27 دَسَمبَر 2024 (UTC)
=="اردو اور کشمیری ویکیپیڈیاؤں کے درمیان علمی تعاون کا منصوبہ"==
محترم {{Reply to|آیات محراج}} صاحب ، محترم {{Reply to|511KeV}} صاحب اور دیگر فعال صارفین کی خدمت میں آداب عرض ہے۔
السلام علیکم،
میں آپ سے ایک نہایت اہم اور دلچسپ علمی منصوبے کے بارے میں بات کرنا چاہتا ہوں۔ میری خواہش ہے کہ کشمیری ویکیپیڈیا اور اردو ویکیپیڈیا کے درمیان ایک دوستانہ اور مشترکہ منصوبہ ترتیب دیا جائے، جس کا مقصد دونوں زبانوں اور ثقافتوں کو قریب لانا ہے۔
اس منصوبے کے تحت:
1. ثقافتی اور علمی مواد کی تخلیق:
کشمیری ویکیپیڈیا پر اردو زبان، ثقافت، تاریخ، اور اردو بولنے والے علاقوں سے متعلق معیاری مضامین لکھے جائیں گے۔ اور اس کے برعکس اردو ویکیپیڈیا پر کشمیری سے متعلق۔ الغرض ایک دوسرے سے متعلق سب کچھ۔
2. معیاری مواد کی بہتری:
موجودہ مضامین کو اپڈیٹ اور بہتر بنایا جائے گا تاکہ اردو ویکیپیڈیا اور کشمیری ویکیپیڈیا کا معیار بلند ہو۔
3. مشترکہ کوشش اور ہم آہنگی:
یہ منصوبہ دونوں ویکیپیڈیاؤں کے درمیان دوستانہ تعلقات کو مضبوط کرنے اور علم و فہم کے تبادلے کو فروغ دینے کے لیے ترتیب دیا جا رہا ہے۔
آپ کشمیری ویکیپیڈیا کے ایک فعال اور قابلِ احترام صارفین ہیں، اس لیے میں چاہتا ہوں کہ یہ تجویز سب سے پہلے آپ کے سامنے پیش کروں۔ اگر آپ اور کشمیری ویکیپیڈیا کی برادری اس منصوبے پر رضا مندی کا اظہار کریں، تو یہ ہمارے لیے ایک شاندار موقع ہوگا۔ آپ کی قیادت اور رہنمائی اس منصوبے کو کامیاب بنانے میں کلیدی کردار ادا کر سکتی ہے۔
اگر آپ اس منصوبے میں دلچسپی رکھتے ہیں تو براہ کرم اپنی قیمتی رائے اور تجاویز سے آگاہ کریں۔ میں آپ کی طرف سے مثبت جواب کا منتظر رہوں گا تاکہ ہم اس منصوبے کو عملی جامہ پہنا سکیں۔
والسلام، [[رُکُن:Veritasphere|Veritasphere]] ([[رُکُن کَتھ:Veritasphere|کَتھ صَفہٕ]]) 07:03, 11 جَنؤری 2025 (UTC)
== Open Community Call - [[:m:Expressions of Interest to host Wikimania 2027 in India: Initial conversation|Expressions of Interest to host Wikimania 2027 in India]] ==
<div lang="en" dir="ltr">
''{{int:please-translate}}''
Dear Wikimedians,
Happy 2025.. 😊
As you must have seen, members from Wikimedians of Kerala and Odia Wikimedia User Groups initiated preliminary discussions around submitting an Expression of Interest (EoI) to have Wikimania 2027 in India. You can find out more on the [[:m:Expressions of Interest to host Wikimania 2027 in India: Initial conversation|Meta Page]].
Our aim is to seek input and assess the overall community sentiment and thoughts from the Indian community before we proceed further with the steps involved in submitting the formal EOI.
As part of the same, we are hosting an '''open community call regarding India's Expression of Interest (EOI) to host Wikimania 2027'''. This is an opportunity to gather your valuable feedback, opinions, and suggestions to shape a strong and inclusive proposal.
* 📅 Date: Wednesday, January 15th 2025
* ⏰ Time: 7pm-8pm IST
* 📍 Platform: https://meet.google.com/sns-qebp-hck
Your participation is key to ensuring the EOI reflects the collective aspirations and potential of the vibrant South Asian community.
Let’s join together to make this a milestone event for the Wikimedia movement in South Asia.
We look forward to your presence!
<br>
Warm regards,
<br>
[[:m:Wikimedians of Kerala|Wikimedians of Kerala]] and [[:m:Odia Wikimedians User Group|Odia Wikimedians]] User Group's
<br>
This message was sent with [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) by [[m:User:Gnoeee|Gnoeee]] ([[m:User_talk:Gnoeee|talk]]) at 05:55, 14 جَنؤری 2025 (UTC)
</div>
<!-- Message sent by User:Gnoeee@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Indic_VPs&oldid=28100038 -->
== Launching! Join Us for Wiki Loves Ramadan 2025! ==
Dear All,
We’re happy to announce the launch of [[m:Wiki Loves Ramadan 2025|Wiki Loves Ramadan 2025]], an annual international campaign dedicated to celebrating and preserving Islamic cultures and history through the power of Wikipedia. As an active contributor to the Local Wikipedia, you are specially invited to participate in the launch.
This year’s campaign will be launched for you to join us write, edit, and improve articles that showcase the richness and diversity of Islamic traditions, history, and culture.
* Topic: [[m:Event:Wiki Loves Ramadan 2025 Campaign Launch|Wiki Loves Ramadan 2025 Campaign Launch]]
* When: Jan 19, 2025
* Time: 16:00 Universal Time UTC and runs throughout Ramadan (starting February 25, 2025).
* Join Zoom Meeting: https://us02web.zoom.us/j/88420056597?pwd=NdrpqIhrwAVPeWB8FNb258n7qngqqo.1
* Zoom meeting hosted by [[m:Wikimedia Bangladesh|Wikimedia Bangladesh]]
To get started, visit the [[m:Wiki Loves Ramadan 2025|campaign page]] for details, resources, and guidelines: Wiki Loves Ramadan 2025.
Add [[m:Wiki Loves Ramadan 2025/Participant|your community here]], and organized Wiki Loves Ramadan 2025 in your local language.
Whether you’re a first-time editor or an experienced Wikipedian, your contributions matter. Together, we can ensure Islamic cultures and traditions are well-represented and accessible to all.
Feel free to invite your community and friends too. Kindly reach out if you have any questions or need support as you prepare to participate.
Let’s make Wiki Loves Ramadan 2025 a success!
For the [[m:Wiki Loves Ramadan 2025/Team|International Team]] 12:08, 16 جَنؤری 2025 (UTC)
<!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27568454 -->
== وکیمیڈیا کامنز ورکشاپ ==
سَلام،
کٲشِرۍ وِکیمیڈینز یوزر گروپ چھُ وکیمیڈیا کامنزَس پٮ۪ٹھ اکھ ورکشاپ منعقد کران۔ تۄہہِ چھِو مہربٲنی کٔرِتھ آز شامَس 7:00 بجہِ اسہِ سۭتہِ شٲمِل گژھنٕچہِ دعوت دِنہٕ
اَسہِ چھِ خۄش زِ وِکِمیٖڈیا کامنزَس پٮ۪ٹھ اَکھ اِنتِظام عافی چُھ پَنُن مہمان مُقرر کَران۔ تِم کرَن وکیمیڈیا کامنز مُتعلِق بصیرت شیئر، تہٕ یہِ پلیٹ فارم مؤثر طریقہٕ سۭتۍ استعمال کرنہٕ خٲطرٕ کَرِ اسہِ رہنُمٲیی۔
''ورکشاپ تفصیل'''':
*موضوع: وکیمیڈیا کامنز ورکشاپ - کشمیری ویکیمیڈینز
*تٲریخ: آتھوار، 19 جنوری
*ٹایِم: 7:00 – 8:00 PM (ایشیا/کولکتہ)
*گوگل میٖٹ لِنک: [ویڈیو کالس منٛز شٲمِل گژھِو](https://meet.google.com/ojo-czuw-tie)
أسۍ چھِ تُہنٛزِ شرکتُک منتظر!
گرم گریفریڈ،
کشمیری ویکیمیڈینس یوزر گروپ <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 08:33, 19 جَنؤری 2025 (UTC)
== Universal Code of Conduct annual review: provide your comments on the UCoC and Enforcement Guidelines ==
<div lang="en" dir="ltr" class="mw-content-ltr">
My apologies for writing in English.
{{Int:Please-translate}}.
I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 3 February 2025. This is the first step of several to be taken for the annual review.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]].
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]].
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 01:11, 24 جَنؤری 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27746256 -->
== Feminism and Folklore 2025 starts soon ==
<div style="border:8px maroon ridge;padding:6px;>
[[File:Feminism and Folklore 2025 logo.svg|centre|550px|frameless]]
::<div lang="en" dir="ltr" class="mw-content-ltr">
<center>''{{int:please-translate}}''</center>
Dear Wiki Community,
You are humbly invited to organize the '''[[:m:Feminism and Folklore 2025|Feminism and Folklore 2025]]''' writing competition from February 1, 2025, to March 31, 2025 on your local Wikipedia. This year, Feminism and Folklore will focus on feminism, women's issues, and gender-focused topics for the project, with a [[:c:Commons:Wiki Loves Folklore 2025|Wiki Loves Folklore]] gender gap focus and a folk culture theme on Wikipedia.
You can help Wikipedia's coverage of folklore from your area by writing or improving articles about things like folk festivals, folk dances, folk music, women and queer folklore figures, folk game athletes, women in mythology, women warriors in folklore, witches and witch hunting, fairy tales, and more. Users can help create new articles, expand or translate from a generated list of suggested articles.
Organisers are requested to work on the following action items to sign up their communities for the project:
# Create a page for the contest on the local wiki.
# Set up a campaign on '''CampWiz''' tool.
# Create the local list and mention the timeline and local and international prizes.
# Request local admins for site notice.
# Link the local page and the CampWiz link on the [[:m:Feminism and Folklore 2025/Project Page|meta project page]].
This year, the Wiki Loves Folklore Tech Team has introduced two new tools to enhance support for the campaign. These tools include the '''Article List Generator by Topic''' and '''CampWiz'''. The Article List Generator by Topic enables users to identify articles on the English Wikipedia that are not present in their native language Wikipedia. Users can customize their selection criteria, and the tool will present a table showcasing the missing articles along with suggested titles. Additionally, users have the option to download the list in both CSV and wikitable formats. Notably, the CampWiz tool will be employed for the project for the first time, empowering users to effectively host the project with a jury. Both tools are now available for use in the campaign. [https://tools.wikilovesfolklore.org/ '''Click here to access these tools''']
Learn more about the contest and prizes on our [[:m:Feminism and Folklore 2025|project page]]. Feel free to contact us on our [[:m:Talk:Feminism and Folklore 2025/Project Page|meta talk page]] or by email us if you need any assistance.
We look forward to your immense coordination.
Thank you and Best wishes,
'''[[:m:Feminism and Folklore 2025|Feminism and Folklore 2025 International Team]]'''
::::Stay connected [[File:B&W Facebook icon.png|link=https://www.facebook.com/feminismandfolklore/|30x30px]] [[File:B&W Twitter icon.png|link=https://twitter.com/wikifolklore|30x30px]]
</div></div>
--[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 02:36, 29 جَنؤری 2025 (UTC)
== Wiki Loves Folklore is back! ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{int:please-translate}}
[[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]]
Dear Wiki Community,
You are humbly invited to participate in the '''[[:c:Commons:Wiki Loves Folklore 2025|Wiki Loves Folklore 2025]]''' an international media contest organized on Wikimedia Commons to document folklore and intangible cultural heritage from different regions, including, folk creative activities and many more. It is held every year from the '''1st till the 31st''' of March.
You can help in enriching the folklore documentation on Commons from your region by taking photos, audios, videos, and [https://commons.wikimedia.org/w/index.php?title=Special:UploadWizard&campaign=wlf_2025 submitting] them in this commons contest.
You can also [[:c:Commons:Wiki Loves Folklore 2025/Organize|organize a local contest]] in your country and support us in translating the [[:c:Commons:Wiki Loves Folklore 2025/Translations|project pages]] to help us spread the word in your native language.
Feel free to contact us on our [[:c:Commons talk:Wiki Loves Folklore 2025|project Talk page]] if you need any assistance.
'''Kind regards,'''
'''Wiki loves Folklore International Team'''
--[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 02:36, 29 جَنؤری 2025 (UTC)
</div>
<!-- Message sent by User:Tiven2240@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=26503019 -->
== Reminder: first part of the annual UCoC review closes soon ==
<div lang="en" dir="ltr" class="mw-content-ltr">
My apologies for writing in English.
{{Int:Please-translate}}.
This is a reminder that the first phase of the annual review period for the Universal Code of Conduct and Enforcement Guidelines will be closing soon. You can make suggestions for changes through [[d:Q614092|the end of day]], 3 February 2025. This is the first step of several to be taken for the annual review.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]]. After review of the feedback, proposals for updated text will be published on Meta in March for another round of community review.
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 00:48, 3 فَرؤری 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28198931 -->
== کٲشِرؠ وِکی میڈینز میٹ اپ ==
ڈیر وکیمیڈینز،
اسہِ چھِ یہِ اعلان کران خوشی زِ کٲشِرؠ وِکی میڈینز میٹ اپ چھِ
اننت ناگَس منٛز گژھَن وول 16 فروری 2025 ہَس منٛز۔ یہِ اجتماع کرِ سٲتھی وکیمیڈینَن سۭتۍ بَحَژ، اشتراک تہٕ مشغولیت ہُنٛد موقعہٕ۔ تۄہہِ سارِوٕے چھِ اَتھ تقریٖبہِ منٛز دعوت دِنہٕ آمٕژ۔
اگر تۄہہِ حصہٕ نِنَس منٛز دِلچسپی چھِو، مہربٲنی کٔرِتھ بٔرِو رجسٹریشن فارم 14 فروری 2025 برٛونٛہہ بۄنہٕ کَنہِ دِنہٕ آمُت لِنکُک استعمال کٔرِتھ: [https://docs.google.com/forms/d/e/1FAIpQLSeTi7V34DjP1sgw-bAXRhcL100Frfwj9z3NYdr32rq4NJ8N5w/viewform یَتھ جاے]
أسۍ چھِ تُہنٛزِ شرکتُک منتظر۔ اگر تۄہہِ کانٛہہ سوال آسہِ، تیٚلہِ کٔرِو وٲتِتھ آزاد ۔
استعار، <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 16:35, 7 فَرؤری 2025 (UTC)
== <span lang="en" dir="ltr"> Upcoming Language Community Meeting (Feb 28th, 14:00 UTC) and Newsletter</span> ==
<div lang="en" dir="ltr">
<section begin="message"/>
Hello everyone!
[[File:WP20Symbols WIKI INCUBATOR.svg|right|frameless|150x150px|alt=An image symbolising multiple languages]]
We’re excited to announce that the next '''Language Community Meeting''' is happening soon, '''February 28th at 14:00 UTC'''! If you’d like to join, simply sign up on the '''[[mw:Wikimedia_Language_and_Product_Localization/Community_meetings#28_February_2025|wiki page]]'''.
This is a participant-driven meeting where we share updates on language-related projects, discuss technical challenges in language wikis, and collaborate on solutions. In our last meeting, we covered topics like developing language keyboards, creating the Moore Wikipedia, and updates from the language support track at Wiki Indaba.
'''Got a topic to share?''' Whether it’s a technical update from your project, a challenge you need help with, or a request for interpretation support, we’d love to hear from you! Feel free to '''reply to this message''' or add agenda items to the document '''[[etherpad:p/language-community-meeting-feb-2025|here]]'''.
Also, we wanted to highlight that the sixth edition of the Language & Internationalization newsletter (January 2025) is available here: [[:mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2025/January|Wikimedia Language and Product Localization/Newsletter/2025/January]]. This newsletter provides updates from the October–December 2024 quarter on new feature development, improvements in various language-related technical projects and support efforts, details about community meetings, and ideas for contributing to projects. To stay updated, you can subscribe to the newsletter on its wiki page: [[:mw:Wikimedia Language and Product Localization/Newsletter|Wikimedia Language and Product Localization/Newsletter]].
We look forward to your ideas and participation at the language community meeting, see you there!
<section end="message"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 08:29, 22 فَرؤری 2025 (UTC)
<!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28217779 -->
== Universal Code of Conduct annual review: proposed changes are available for comment ==
<div lang="en" dir="ltr" class="mw-content-ltr">
My apologies for writing in English.
{{Int:Please-translate}}.
I am writing to you to let you know that [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|proposed changes]] to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct (UCoC) Enforcement Guidelines]] and [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|Universal Code of Conduct Coordinating Committee (U4C) Charter]] are open for review. '''[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|You can provide feedback on suggested changes]]''' through the [[d:Q614092|end of day]] on Tuesday, 18 March 2025. This is the second step in the annual review process, the final step will be community voting on the proposed changes.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find relevant links about the process on the UCoC annual review page on Meta]].
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]].
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] 18:51, 7 مارٕچ 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28307738 -->
== An improved dashboard for the Content Translation tool ==
<div lang="en" dir="ltr">
{{Int:hello}} Wikipedians,
Apologies as this message is not in your language, {{Int:please-translate}}.
The [[mediawikiwiki:Special:MyLanguage/Wikimedia_Language_and_Product_Localization|Language and Product Localization team]] has improved the [https://test.wikipedia.org/w/index.php?title=Special:ContentTranslation&filter-type=automatic&filter-id=previous-edits&active-list=suggestions&from=en&to=es Content Translation dashboard] to create a consistent experience for all contributors using mobile and desktop devices. The improved translation dashboard allows all logged-in users of the tool to enjoy a consistent experience regardless of their type of device.
With a harmonized experience, logged-in desktop users now have access to the capabilities shown in the image below.
[[file:Content_Translation_new-dashboard.png|alt=|center|thumb|576x576px|Notice that in this screenshot, the new dashboard allows: Users to adjust suggestions with the "For you" and "...More" buttons to select general topics or community-created collections (like the example of Climate topic). Also, users can use translation to create new articles (as before) and expand existing articles section by section. You can see how suggestions are provided in the new dashboard in two groups ("Create new pages" and "Expand with new sections")-one for each activity.]]
[[File:Content_Translation_dashboard_on_desktop.png|alt=|center|thumb|577x577px|In the current dashboard, you will notice that you can't adjust suggestions to select topics or community-created collections. Also, you can't expand on existing articles by translating new sections.]]
We will implement [[mw:Special:MyLanguage/Content translation#Improved translation experience|this improvement]] on your wiki '''on Monday, March 17th, 2025''' and remove the current dashboard '''by May 2025'''.
Please reach out with any questions concerning the dashboard in this thread.
Thank you!
On behalf of the Language and Product Localization team.
</div>
<bdi lang="en" dir="ltr">[[User:UOzurumba (WMF)|UOzurumba (WMF)]]</bdi> 02:56, 13 مارٕچ 2025 (UTC)
<!-- Message sent by User:UOzurumba (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:UOzurumba_(WMF)/sandbox_CX_Unified_dashboard_announcement_list_1&oldid=28382282 -->
== <span lang="en" dir="ltr">Your wiki will be in read-only soon</span> ==
<div lang="en" dir="ltr">
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster.
All traffic will switch on '''{{#time:j xg|2025-03-19|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2025-03-19T14:00|en}} {{#time:H:i e|2025-03-19T14:00}}]'''.
Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2025-03-19|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule.
'''Please share this information with your community.'''</div><section end="server-switch"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:14, 14 مارٕچ 2025 (UTC)
<!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=28307742 -->
== تَرجمہ وکی پؠٹھ سیشن ==
سَلام،
أسۍ چھِ تۄہہِ کٲشِرؠ وکیمیڈینس یوزر گروپ کہِ طرفہٕ Translatewiki.net تہٕ وکیپیڈیا اِنٹرفیس کٲشِرِ زبانہِ منٛز ترجمہٕ کرنس منٛز امکہِ کردارس پٮ۪ٹھ منعقد کرنہٕ آمتِس یِنہٕ وٲلِس آن لائن سیشن منٛز دعاوت دِوان۔
'''سیشن تفصیلات''':
*موضوع: کٲشِرۍ تٲریخس منٛز وکیپیڈیا انٹرفیسُک Translatewiki.net تہٕ ترجمہٕ کرنُک تعارف:
*23 مارچ 2025 وقت: 5:00 بجے (آئی ایس ٹی)
*پلیٹ فارم/لنک: https://meet.google.com/ceo-rpos-wjs
یتھ سیشن منٛز کرو أسۍ کشمیری وکیپیڈیا خٲطرٕ انٹرفیس ترجمٕچ اہمیت: میڈیا ویکی پیغامات ترجمہ کرنہٕ خٲطرٕ Translatewiki.net کِتھ پٲٹھؠ استعمال کرُن ترجمہٕ عملہٕ ہُنٛد عملی مظٲہرٕ کھلہٕ بحث تہٕ سوال و جواب سیشن آسہِ تمن خٲطرٕ اکھ بہترین موقعہٕ۔ کٲشِرِ وِکیٖپیٖڈیا چہِ لوکلائزیشن منٛز دِلچسپی تھاونس تہٕ یہِ سٲنِس برادٔری خٲطرٕ زِیٛادٕ رسٲیی بناونس منٛز دِلچسپی تھاوان۔ أسؠ چھِ تمام رُکنن اتھ اَہَم پَہلَس منٛز حِصہٕ نِنہٕ تہٕ حصہٕ نِنہٕ خٲطرٕ حوصلہٕ مہربٲنی کٔرِتھ کٔرِو یَتھ ای میلَس جواب دِتھ پنٕنؠ حٲضری تصدیٖق۔ <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 15:27, 20 مارٕچ 2025 (UTC)
== Final proposed modifications to the Universal Code of Conduct Enforcement Guidelines and U4C Charter now posted ==
<div lang="en" dir="ltr" class="mw-content-ltr">
The proposed modifications to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct Enforcement Guidelines]] and the U4C Charter [[m:Universal_Code_of_Conduct/Annual_review/2025/Proposed_Changes|are now on Meta-wiki for community notice]] in advance of the voting period. This final draft was developed from the previous two rounds of community review. Community members will be able to vote on these modifications starting on 17 April 2025. The vote will close on 1 May 2025, and results will be announced no later than 12 May 2025. The U4C election period, starting with a call for candidates, will open immediately following the announcement of the review results. More information will be posted on [[m:Special:MyLanguage//Universal_Code_of_Conduct/Coordinating_Committee/Election|the wiki page for the election]] soon.
Please be advised that this process will require more messages to be sent here over the next two months.
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 02:04, 4 اَپریل 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 -->
== Ukraine's Cultural Diplomacy Month 2025: Invitation ==
<div lang="en" dir="ltr">
[[File:UCDM 2025 general.png|180px|right]]
{{int:please-translate}}
Hello, dear Wikipedians!<br/>
[[:m:Special:MyLanguage/Wikimedia Ukraine|Wikimedia Ukraine]], in cooperation with the [[:en:Ministry of Foreign Affairs of Ukraine|MFA of Ukraine]] and [[:en:Ukrainian Institute|Ukrainian Institute]], has launched the fifth edition of writing challenge "'''[[:m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2025|Ukraine's Cultural Diplomacy Month]]'''", which lasts from '''14th April''' until '''16th May 2025'''. The campaign is dedicated to famous Ukrainian artists of cinema, music, literature, architecture, design, and cultural phenomena of Ukraine that are now part of world heritage. We accept contributions in every language!
The most active contesters will receive prizes.
If you are interested in coordinating long-term community engagement for the campaign and becoming a local ambassador, we would love to hear from you! Please let us know your interest.
<br/>
We invite you to take part and help us improve the coverage of Ukrainian culture on Wikipedia in your language! Also, we plan to set up a [[:m:CentralNotice/Request/Ukraine's Cultural Diplomacy Month 2025|banner]] to notify users of the possibility to participate in such a challenge! [[:m:User:OlesiaLukaniuk (WMUA)|OlesiaLukaniuk (WMUA)]] ([[:m:User talk:OlesiaLukaniuk (WMUA)|talk]])
</div>
16:11, 16 اَپریل 2025 (UTC)
<!-- Message sent by User:Hide on Rosé@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:OlesiaLukaniuk_(WMUA)/list_of_wikis&oldid=28552112 -->
== Vote now on the revised UCoC Enforcement Guidelines and U4C Charter ==
<div lang="en" dir="ltr" class="mw-content-ltr">
The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines ("UCoC EG") and the UCoC's Coordinating Committee Charter is open now through the end of 1 May (UTC) ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/2025/Voter_information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki.
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review of the EG and Charter was planned and implemented by the U4C. Further information will be provided in the coming months about the review of the UCoC itself. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
In cooperation with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 00:34, 17 اَپریل 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 -->
== Sub-referencing: User testing ==
<div lang="en" dir="ltr">
[[File:Sub-referencing reuse visual.png|400px|right]]
<small>''Apologies for writing in English, please help us by providing a translation below''</small>
Hi I’m Johannes from [[:m:Wikimedia Deutschland|Wikimedia Deutschland]]'s [[:m:WMDE Technical Wishes|Technical Wishes team]]. We are making great strides with the new [[:m:WMDE Technical Wishes/Sub-referencing|sub-referencing feature]] and we’d love to invite you to take part in two activities to help us move this work further:
#'''Try it out and share your feedback'''
#:[[:m:WMDE Technical Wishes/Sub-referencing# Test the prototype|Please try]] the updated ''wikitext'' feature [https://en.wikipedia.beta.wmflabs.org/wiki/Sub-referencing on the beta wiki] and let us know what you think, either [[:m:Talk:WMDE Technical Wishes/Sub-referencing|on our talk page]] or by [https://greatquestion.co/wikimediadeutschland/talktotechwish booking a call] with our UX researcher.
#'''Get a sneak peak and help shape the ''Visual Editor'' user designs'''
#:Help us test the new design prototypes by participating in user sessions – [https://greatquestion.co/wikimediadeutschland/gxk0taud/apply sign up here to receive an invite]. We're especially hoping to speak with people from underrepresented and diverse groups. If that's you, please consider signing up! No prior or extensive editing experience is required. User sessions will start ''May 14th''.
We plan to bring this feature to Wikimedia wikis later this year. We’ll reach out to wikis for piloting in time for deployments. Creators and maintainers of reference-related tools and templates will be contacted beforehand as well.
Thank you very much for your support and encouragement so far in helping bring this feature to life! </div> <bdi lang="en" dir="ltr">[[User:Johannes Richter (WMDE)|Johannes Richter (WMDE)]] ([[User talk:Johannes Richter (WMDE)|talk]])</bdi> 15:03, 28 اَپریل 2025 (UTC)
<!-- Message sent by User:Johannes Richter (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Johannes_Richter_(WMDE)/Sub-referencing/massmessage_list&oldid=28628657 -->
== <span lang="en" dir="ltr">Vote on proposed modifications to the UCoC Enforcement Guidelines and U4C Charter</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines and U4C Charter closes on 1 May 2025 at 23:59 UTC ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025/Voter information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki.
The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]].
Please share this message with members of your community in your language, as appropriate, so they can participate as well.
In cooperation with the U4C -- <section end="announcement-content" />
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 03:41, 29 اَپریل 2025 (UTC)</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== We will be enabling the new Charts extension on your wiki soon! ==
''(Apologies for posting in English)''
Hi all! We have good news to share regarding the ongoing problem with graphs and charts affecting all wikis that use them.
As you probably know, the [[:mw:Special:MyLanguage/Extension:Graph|old Graph extension]] was disabled in 2023 [[listarchive:list/wikitech-l@lists.wikimedia.org/thread/EWL4AGBEZEDMNNFTM4FRD4MHOU3CVESO/|due to security reasons]]. We’ve worked in these two years to find a solution that could replace the old extension, and provide a safer and better solution to users who wanted to showcase graphs and charts in their articles. We therefore developed the [[:mw:Special:MyLanguage/Extension:Chart|Charts extension]], which will be replacing the old Graph extension and potentially also the [[:mw:Extension:EasyTimeline|EasyTimeline extension]].
After successfully deploying the extension on Italian, Swedish, and Hebrew Wikipedia, as well as on MediaWiki.org, as part of a pilot phase, we are now happy to announce that we are moving forward with the next phase of deployment, which will also include your wiki.
The deployment will happen in batches, and will start from '''May 6'''. Please, consult [[:mw:Special:MyLanguage/Extension:Chart/Project#Deployment Timeline|our page on MediaWiki.org]] to discover when the new Charts extension will be deployed on your wiki. You can also [[:mw:Special:MyLanguage/Extension:Chart|consult the documentation]] about the extension on MediaWiki.org.
If you have questions, need clarifications, or just want to express your opinion about it, please refer to the [[:mw:Special:MyLanguage/Extension_talk:Chart/Project|project’s talk page on Mediawiki.org]], or ping me directly under this thread. If you encounter issues using Charts once it gets enabled on your wiki, please report it on the [[:mw:Extension_talk:Chart/Project|talk page]] or at [[phab:tag/charts|Phabricator]].
Thank you in advance! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:07, 6 مٔیی 2025 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28663781 -->
== <span lang="en" dir="ltr">Call for Candidates for the Universal Code of Conduct Coordinating Committee (U4C)</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
The results of voting on the Universal Code of Conduct Enforcement Guidelines and Universal Code of Conduct Coordinating Committee (U4C) Charter is [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025#Results|available on Meta-wiki]].
You may now [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025/Candidates|submit your candidacy to serve on the U4C]] through 29 May 2025 at 12:00 UTC. Information about [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025|eligibility, process, and the timeline are on Meta-wiki]]. Voting on candidates will open on 1 June 2025 and run for two weeks, closing on 15 June 2025 at 12:00 UTC.
If you have any questions, you can ask on [[m:Talk:Universal Code of Conduct/Coordinating Committee/Election/2025|the discussion page for the election]]. -- in cooperation with the U4C, </div><section end="announcement-content" />
</div>
<bdi lang="en" dir="ltr">[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|کَتھ]])</bdi> 22:07, 15 مٔیی 2025 (UTC)
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== RfC ongoing regarding Abstract Wikipedia (and your project) ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''(Apologies for posting in English, if this is not your first language)''
Hello all! We opened a discussion on Meta about a very delicate issue for the development of [[:m:Special:MyLanguage/Abstract Wikipedia|Abstract Wikipedia]]: where to store the abstract content that will be developed through functions from Wikifunctions and data from Wikidata. Since some of the hypothesis involve your project, we wanted to hear your thoughts too.
We want to make the decision process clear: we do not yet know which option we want to use, which is why we are consulting here. We will take the arguments from the Wikimedia communities into account, and we want to consult with the different communities and hear arguments that will help us with the decision. The decision will be made and communicated after the consultation period by the Foundation.
You can read the various hypothesis and have your say at [[:m:Abstract Wikipedia/Location of Abstract Content|Abstract Wikipedia/Location of Abstract Content]]. Thank you in advance! -- [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|<span class="signature-talk">{{int:Talkpagelinktext}}</span>]]) 15:26, 22 مٔیی 2025 (UTC)
</div>
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28768453 -->
== <span lang="en" dir="ltr">Wikimedia Foundation Board of Trustees 2025 Selection & Call for Questions</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Selection announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Selection announcement}}&language=&action=page&filter= {{int:please-translate}}]''
Dear all,
This year, the term of 2 (two) Community- and Affiliate-selected Trustees on the Wikimedia Foundation Board of Trustees will come to an end [1]. The Board invites the whole movement to participate in this year’s selection process and vote to fill those seats.
The Elections Committee will oversee this process with support from Foundation staff [2]. The Governance Committee, composed of trustees who are not candidates in the 2025 community-and-affiliate-selected trustee selection process (Raju Narisetti, Shani Evenstein Sigalov, Lorenzo Losa, Kathy Collins, Victoria Doronina and Esra’a Al Shafei) [3], is tasked with providing Board oversight for the 2025 trustee selection process and for keeping the Board informed. More details on the roles of the Elections Committee, Board, and staff are here [4].
Here are the key planned dates:
* May 22 – June 5: Announcement (this communication) and call for questions period [6]
* June 17 – July 1, 2025: Call for candidates
* July 2025: If needed, affiliates vote to shortlist candidates if more than 10 apply [5]
* August 2025: Campaign period
* August – September 2025: Two-week community voting period
* October – November 2025: Background check of selected candidates
* Board’s Meeting in December 2025: New trustees seated
Learn more about the 2025 selection process - including the detailed timeline, the candidacy process, the campaign rules, and the voter eligibility criteria - on this Meta-wiki page [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025|[link]]].
'''Call for Questions'''
In each selection process, the community has the opportunity to submit questions for the Board of Trustees candidates to answer. The Election Committee selects questions from the list developed by the community for the candidates to answer. Candidates must answer all the required questions in the application in order to be eligible; otherwise their application will be disqualified. This year, the Election Committee will select 5 questions for the candidates to answer. The selected questions may be a combination of what’s been submitted from the community, if they’re alike or related. [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025/Questions_for_candidates|[link]]]
'''Election Volunteers'''
Another way to be involved with the 2025 selection process is to be an Election Volunteer. Election Volunteers are a bridge between the Elections Committee and their respective community. They help ensure their community is represented and mobilize them to vote. Learn more about the program and how to join on this Meta-wiki page [[m:Wikimedia_Foundation_elections/2025/Election_volunteers|[link].]]
Thank you!
[1] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2022/Results
[2] https://foundation.wikimedia.org/wiki/Committee:Elections_Committee_Charter
[3] https://foundation.wikimedia.org/wiki/Resolution:Committee_Membership,_December_2024
[4] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections_committee/Roles
[5] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/FAQ
[6] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/Questions_for_candidates
Best regards,
Victoria Doronina
Board Liaison to the Elections Committee
Governance Committee<section end="announcement-content" />
</div>
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 03:07, 28 مٔیی 2025 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== <span lang="en" dir="ltr"> Upcoming Deployment of the CampaignEvents Extension</span> ==
<div lang="en" dir="ltr">
<section begin="message"/>
Hello everyone,
''(Apologies for posting in English if English is not your first language. Please help translate to your language.)''
The Campaigns Product Team is planning a global deployment of the '''[[:mw:Help:Extension:CampaignEvents|CampaignEvents extension]]''' to all Wikipedias, including this wiki, during the '''week of June 23rd'''.
This extension is designed to help organizers plan and manage events, WikiProjects, and other on-wiki collaborations - and to make these efforts more discoverable.
The three main features of this extension are:
* '''[[:m:Event_Center/Registration|Event Registration]]''': A simple way to sign up for events on the wiki.
* '''[[:m:CampaignEvents/Collaboration_list|Collaboration List]]''': A global list of events and a local list of WikiProjects, accessible at '''[[:m:Special:AllEvents|Special:AllEvents]]'''.
* '''[[:m:Campaigns/Foundation_Product_Team/Invitation_list|Invitation Lists]]''': A tool to help organizers find editors who might want to join, based on their past contributions.
'''Note''': The extension comes with a new user right called '''"Event Organizer"''', which will be managed by administrators on this wiki. Organizer tools like Event Registration and Invitation Lists will only work if someone is granted this right. The Collaboration List is available to everyone immediately after deployment.
The extension is already live on several wikis, including '''Meta, Wikidata, English Wikipedia''', and more ( [[m:CampaignEvents/Deployment_status#Current_Deployment_Status_for_CampaignEvents_extension| See the full deployment list]])
If you have any questions, concerns, or feedback, please feel free to share them on the [[m:Talk:CampaignEvents| extension talkpage]]. We’d love to hear from you before the rollout.
Thank you! <section end="message"/>
</div>
<bdi lang="en" dir="ltr">[[User:Udehb-WMF|Udehb-WMF]] ([[User talk:Udehb-WMF|کَتھ]]) 16:47, 29 مٔیی 2025 (UTC)</bdi>
<!-- Message sent by User:Udehb-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Udehb-WMF/sandbox/deployment_audience&oldid=28803829 -->
== 📣 Announcing the South Asia Newsletter – Get Involved! 🌏 ==
<div lang="en" dir="ltr">
''{{int:please-translate}}''
Hello Wikimedians of South Asia! 👋
We’re excited to launch the planning phase for the '''South Asia Newsletter''' – a bi-monthly, community-driven publication that brings news, updates, and original stories from across our vibrant region, to one page!
We’re looking for passionate contributors to join us in shaping this initiative:
* Editors/Reviewers – Craft and curate impactful content
* Technical Contributors – Build and maintain templates, modules, and other magic on meta.
* Community Representatives – Represent your Wikimedia Affiliate or community
If you're excited to contribute and help build a strong regional voice, we’d love to have you on board!
👉 Express your interest though [https://docs.google.com/forms/d/e/1FAIpQLSfhk4NIe3YwbX88SG5hJzcF3GjEeh5B1dMgKE3JGSFZ1vtrZw/viewform this link].
Please share this with your community members.. Let’s build this together! 💬
This message was sent with [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) by [[m:User:Gnoeee|Gnoeee]] ([[m:User_talk:Gnoeee|talk]]) at 15:42, 6 جوٗن 2025 (UTC)
</div>
<!-- Message sent by User:Gnoeee@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/South_Asia_Village_Pumps&oldid=25720607 -->
== Vote now in the 2025 U4C Election ==
<div lang="en" dir="ltr" class="mw-content-ltr">
Apologies for writing in English.
{{Int:Please-translate}}
Eligible voters are asked to participate in the 2025 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2025|2025 Election information page]]. The vote closes on 17 June 2025 at [https://zonestamp.toolforge.org/1750161600 12:00 UTC].
Please vote if your account is eligible. Results will be available by 1 July 2025. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 23:00, 13 June 2025 (UTC) </div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28848819 -->
== <span lang="en" dir="ltr">Wikimedia Foundation Board of Trustees 2025 - Call for Candidates</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Call for candidates|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Call for candidates}}&language=&action=page&filter= {{int:please-translate}}]</div>
Hello all,
The [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|call for candidates for the 2025 Wikimedia Foundation Board of Trustees selection is now open]] from June 17, 2025 – July 2, 2025 at 11:59 UTC [1]. The Board of Trustees oversees the Wikimedia Foundation's work, and each Trustee serves a three-year term [2]. This is a volunteer position.
This year, the Wikimedia community will vote in late August through September 2025 to fill two (2) seats on the Foundation Board. Could you – or someone you know – be a good fit to join the Wikimedia Foundation's Board of Trustees? [3]
Learn more about what it takes to stand for these leadership positions and how to submit your candidacy on [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidate application|this Meta-wiki page]] or encourage someone else to run in this year's election.
Best regards,
Abhishek Suryawanshi<br />
Chair of the Elections Committee
On behalf of the Elections Committee and Governance Committee
[1] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Call_for_candidates
[2] https://foundation.wikimedia.org/wiki/Legal:Bylaws#(B)_Term.
[3] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Resources_for_candidates<section end="announcement-content" />
</div>
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 17:44, 17 June 2025 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28866958 -->
== <span lang="en" dir="ltr">Sister Projects Task Force reviews Wikispore and Wikinews</span> ==
<div lang="en" dir="ltr">
<section begin="message"/>
Dear Wikimedia Community,
The [[m:Wikimedia Foundation Community Affairs Committee|Community Affairs Committee (CAC)]] of the Wikimedia Foundation Board of Trustees assigned [[m:Wikimedia Foundation Community Affairs Committee/Sister Projects Task Force|the Sister Projects Task Force (SPTF)]] to update and implement a procedure for assessing the lifecycle of Sister Projects – wiki [[m:Wikimedia projects|projects supported by Wikimedia Foundation (WMF)]].
A vision of relevant, accessible, and impactful free knowledge has always guided the Wikimedia Movement. As the ecosystem of Wikimedia projects continues to evolve, it is crucial that we periodically review existing projects to ensure they still align with our goals and community capacity.
Despite their noble intent, some projects may no longer effectively serve their original purpose. '''Reviewing such projects is not about giving up – it's about responsible stewardship of shared resources'''. Volunteer time, staff support, infrastructure, and community attention are finite, and the non-technical costs tend to grow significantly as our ecosystem has entered a different age of the internet than the one we were founded in. Supporting inactive projects or projects that didn't meet our ambitions can unintentionally divert these resources from areas with more potential impact.
Moreover, maintaining projects that no longer reflect the quality and reliability of the Wikimedia name stands for, involves a reputational risk. An abandoned or less reliable project affects trust in the Wikimedia movement.
Lastly, '''failing to sunset or reimagine projects that are no longer working can make it much harder to start new ones'''. When the community feels bound to every past decision – no matter how outdated – we risk stagnation. A healthy ecosystem must allow for evolution, adaptation, and, when necessary, letting go. If we create the expectation that every project must exist indefinitely, we limit our ability to experiment and innovate.
Because of this, SPTF reviewed two requests concerning the lifecycle of the Sister Projects to work through and demonstrate the review process. We chose Wikispore as a case study for a possible new Sister Project opening and Wikinews as a case study for a review of an existing project. Preliminary findings were discussed with the CAC, and a community consultation on both proposals was recommended.
=== Wikispore ===
The [[m:Wikispore|application to consider Wikispore]] was submitted in 2019. SPTF decided to review this request in more depth because rather than being concentrated on a specific topic, as most of the proposals for the new Sister Projects are, Wikispore has the potential to nurture multiple start-up Sister Projects.
After careful consideration, the SPTF has decided '''not to recommend''' Wikispore as a Wikimedia Sister Project. Considering the current activity level, the current arrangement allows '''better flexibility''' and experimentation while WMF provides core infrastructural support.
We acknowledge the initiative's potential and seek community input on what would constitute a sufficient level of activity and engagement to reconsider its status in the future.
As part of the process, we shared the decision with the Wikispore community and invited one of its leaders, Pharos, to an SPTF meeting.
Currently, we especially invite feedback on measurable criteria indicating the project's readiness, such as contributor numbers, content volume, and sustained community support. This would clarify the criteria sufficient for opening a new Sister Project, including possible future Wikispore re-application. However, the numbers will always be a guide because any number can be gamed.
=== Wikinews ===
We chose to review Wikinews among existing Sister Projects because it is the one for which we have observed the highest level of concern in multiple ways.
Since the SPTF was convened in 2023, its members have asked for the community's opinions during conferences and community calls about Sister Projects that did not fulfil their promise in the Wikimedia movement.[https://commons.wikimedia.org/wiki/File:WCNA_2024._Sister_Projects_-_opening%3F_closing%3F_merging%3F_splitting%3F.pdf <nowiki>[1]</nowiki>][https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Community_Affairs_Committee/Sister_Projects_Task_Force#Wikimania_2023_session_%22Sister_Projects:_past,_present_and_the_glorious_future%22 <nowiki>[2]</nowiki>][https://meta.wikimedia.org/wiki/WikiConvention_francophone/2024/Programme/Quelle_proc%C3%A9dure_pour_ouvrir_ou_fermer_un_projet_%3F <nowiki>[3]</nowiki>] Wikinews was the leading candidate for an evaluation because people from multiple language communities proposed it. Additionally, by most measures, it is the least active Sister Project, with the greatest drop in activity over the years.
While the Language Committee routinely opens and closes language versions of the Sister Projects in small languages, there has never been a valid proposal to close Wikipedia in major languages or any project in English. This is not true for Wikinews, where there was a proposal to close English Wikinews, which gained some traction but did not result in any action[https://meta.wikimedia.org/wiki/Proposals_for_closing_projects/Closure_of_English_Wikinews <nowiki>[4]</nowiki>][https://meta.wikimedia.org/wiki/WikiConvention_francophone/2024/Programme/Quelle_proc%C3%A9dure_pour_ouvrir_ou_fermer_un_projet_%3F <nowiki>[5]</nowiki>, see section 5] as well as a draft proposal to close all languages of Wikinews[https://meta.wikimedia.org/wiki/Talk:Proposals_for_closing_projects/Archive_2#Close_Wikinews_completely,_all_languages? <nowiki>[6]</nowiki>].
[[:c:File:Sister Projects Taskforce Wikinews review 2024.pdf|Initial metrics]] compiled by WMF staff also support the community's concerns about Wikinews.
Based on this report, SPTF recommends a community reevaluation of Wikinews. We conclude that its current structure and activity levels are the lowest among the existing sister projects. SPTF also recommends pausing the opening of new language editions while the consultation runs.
SPTF brings this analysis to a discussion and welcomes discussions of alternative outcomes, including potential restructuring efforts or integration with other Wikimedia initiatives.
'''Options''' mentioned so far (which might be applied to just low-activity languages or all languages) include but are not limited to:
*Restructure how Wikinews works and is linked to other current events efforts on the projects,
*Merge the content of Wikinews into the relevant language Wikipedias, possibly in a new namespace,
*Merge content into compatibly licensed external projects,
*Archive Wikinews projects.
Your insights and perspectives are invaluable in shaping the future of these projects. We encourage all interested community members to share their thoughts on the relevant discussion pages or through other designated feedback channels.
=== Feedback and next steps ===
We'd be grateful if you want to take part in a conversation on the future of these projects and the review process. We are setting up two different project pages: [[m:Public consultation about Wikispore|Public consultation about Wikispore]] and [[m:Public consultation about Wikinews|Public consultation about Wikinews]]. Please participate between 27 June 2025 and 27 July 2025, after which we will summarize the discussion to move forward. You can write in your own language.
I will also host a community conversation 16th July Wednesday 11.00 UTC and 17th July Thursday 17.00 UTC (call links to follow shortly) and will be around at Wikimania for more discussions.
<section end="message"/>
</div>
-- [[User:Victoria|Victoria]] on behalf of the Sister Project Task Force, 20:56, 27 جوٗن 2025 (UTC)
<!-- Message sent by User:Johan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Sister_project_MassMassage_on_behalf_of_Victoria/Target_list&oldid=28911188 -->
== Wikidata Item and Property labels soon displayed in Wiki Watchlist/Recent Changes ==
''(Apologies for posting in English, you can help by translating into your language)''
Hello everyone, the [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Resolve_Labels|Wikidata For Wikimedia Projects]] team is excited to announce an upcoming change in how Wikidata edit changelogs are displayed in your [[Special:Watchlist|Watchlists]] and [[Special:RecentChanges|Recent Changes]] lists. If an edit is made on Wikidata that affects a page in another Wikimedia Project, the changelog will contain some information about the nature of the edit. This can include a QID (or Q-number), a PID (or P-number) and a value (which can be text, numbers, dates, or also QID or PID’s). Confused by these terms? See the [[d:Special:MyLanguage/Wikidata:Glossary|Wikidata:Glossary]] for further explanations.
The upcoming change is scheduled for '''17.07.2025''', between '''1300 - 1500 UTC'''.
The change will display the label (item name) alongside any QID or PIDs, as seen in the image below:
[[File:Apr10 edit summary on Wikidata.png|An edit sum entry on Wikidata, labels display alongside their P- and Q-no.'s]]
These changes will only be visible if you have Wikidata edits enabled in your User Preferences for Watchlists and Recent Changes, or have the active filter ‘Wikidata edits’ checkbox toggled on, directly on the Watchlist and Recent Changes pages.
Your bot and gadget may be affected! There are thousands of bots, gadgets and user-scripts and whilst we have researched potential effects to many of them, we cannot guarantee there won’t be some that are broken or affected by this change.
Further information and context about this change, including how your bot may be affected can be found on this [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Resolve_Labels|project task page]]. We welcome your questions and feedback, please write to us on this dedicated [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Resolve_Labels|Talk page]].
Thank you, - [[m:User:Danny_Benjafield_(WMDE)|Danny Benjafield (WMDE)]] on behalf of the Wikidata For Wikimedia Projects Team. [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 12:45, 14 جُلَے 2025 (UTC)
<!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=28981877 -->
== <span lang="en" dir="ltr">Temporary accounts will be rolled out soon</span> ==
<div lang="en" dir="ltr">
<section begin="body"/>
Hello, we are the Wikimedia Foundation [[mw:Special:MyLanguage/Product Safety and Integrity|Product Safety and Integrity]] team. We would like to announce that '''we plan to enable [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] for this wiki in the week of September 1'''.
Temporary accounts are successfully live on 30 wikis, including many large ones like German, Japanese, and French. The change they bring is especially relevant to logged-out editors, who this feature is designed to protect. But it is also relevant to community members like mentors, patrollers, and admins – anyone who reverts edits, blocks users, or otherwise interacts with logged-out editors as part of keeping the wikis safe and accurate.
'''Why we are building temporary accounts'''
Our wikis should be safer to edit by default for logged-out editors. Temporary accounts allow people to continue editing the wikis without creating an account, while avoiding publicly tying their edits to their IP address. We believe this is in the best interest of our logged-out editors, who make valuable contributions to the wikis and who may later create accounts and grow our community of editors, admins, and other roles. Even though the wikis do warn logged-out editors that their IP address will be associated with their edit, many people may not understand what an IP address is, or that it could be used to connect them to other information about them in ways they might not expect.
Additionally, our moderation software and tools rely too heavily on network origin (IP addresses) to identify users and patterns of activity, especially as IP addresses themselves are becoming less stable as identifiers. Temporary accounts allow for more precise interactions with logged-out editors, including more precise blocks, and can help limit how often we unintentionally end up blocking good-faith users who use the same IP addresses as bad-faith users.
'''How temporary accounts work'''
[[File:Temporary account banner and empty talk page.png|thumb]]
Any time a logged-out user publishes an edit on this wiki, a cookie will be set in this user's browser, and a temporary account tied with this cookie will be automatically created. This account's name will follow the pattern: <code dir=ltr>~2025-12345-67</code> (a tilde, current year, a number). On pages like Recent Changes or page history, this name will be displayed. The cookie will expire 90 days after its creation. As long as it exists, all edits made from this device will be attributed to this temporary account. It will be the same account even if the IP address changes, unless the user clears their cookies or uses a different device or web browser. A record of the IP address used at the time of each edit will be stored for 90 days after the edit. However, only some logged-in users will be able to see it.
'''What does this mean for different groups of users?'''
'''For logged-out editors'''
* This increases privacy: currently, if you do not use a registered account to edit, then everybody can see the IP address for the edits you made, even after 90 days. That will no longer be possible on this wiki.
* If you use a temporary account to edit from different locations in the last 90 days (for example at home and at a coffee shop), the edit history and the IP addresses for all those locations will now be recorded together, for the same temporary account. Users who [[foundation:Special:MyLanguage/Policy:Access_to_temporary_account_IP_addresses|meet the relevant requirements]] will be able to view this data. If this creates any personal security concerns for you, please contact talktohumanrights at wikimedia.org for advice.
'''For community members interacting with logged-out editors'''
* A temporary account is uniquely linked to a device. In comparison, an IP address can be shared with different devices and people (for example, different people at school or at work might have the same IP address).
* Compared to the current situation, it will be safer to assume that a temporary user's talk page belongs to only one person, and messages left there will be read by them. As you can see in the screenshot, temporary account users will receive notifications. It will also be possible to thank them for their edits, ping them in discussions, and invite them to get more involved in the community.
'''For users who use IP address data to moderate and maintain the wiki'''
* '''For patrollers''' who track persistent abusers, investigate violations of policies, etc.: Users who [[foundation:Special:MyLanguage/Policy:Access_to_temporary_account_IP_addresses|meet the requirements]] will be able to reveal temporary users' IP addresses and all contributions made by temporary accounts from a specific IP address or range ([[Special:IPContributions]]). They will also have access to useful information about the IP addresses thanks to the [[mw:Special:MyLanguage/Trust and Safety Product/IP Info|IP Info]] feature. Many other pieces of software have been built or adjusted to work with temporary accounts, including AbuseFilter, global blocks, Global User Contributions, and more. (For information for volunteer developers on how to update the code of your tools – see the last part of the message.)
* '''For admins blocking logged-out editors''':
** It will be possible to block many abusers by just blocking their temporary accounts. A blocked person won't be able to create new temporary accounts quickly if the admin selects the [[mw:Special:MyLanguage/Autoblock|autoblock]] option.
** It will still be possible to block an IP address or IP range.
* Temporary accounts will not be retroactively applied to contributions made before the deployment. On Special:Contributions, you will be able to see existing IP user contributions, but not new contributions made by temporary accounts on that IP address. Instead, you should use Special:IPContributions for this.
'''Our requests for you, and next steps'''
* If you know of any tools, bots, gadgets etc. using data about IP addresses or being available for logged-out users, you may want to test if they work on [[testwiki:Main_Page|testwiki]] or [[test2wiki:Main_Page|test2wiki]]. If you are a volunteer developer, [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers|read our documentation for developers]], and in particular, the section on [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers#How should I update my code?|how your code might need to be updated]].
* If you want to test the temporary account experience, for example just to check what it feels like, go to testwiki or test2wiki and edit without logging in.
* Tell us if you know of any difficulties that need to be addressed. We will try to help, and if we are not able, we will consider the available options.
* Look at our [[m:Meta:Babel#Temporary_Accounts:_access_to_IP_addresses_and_next_steps|previous message]] about requirements for users without extended rights who may need access to IP addresses.
To learn more about the project, check out [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/FAQ|our FAQ]] – you will find many useful answers there. You may also [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/Updates|look at the updates]] (we have just posted one) and [[mw:Newsletter:Product Safety and Integrity|subscribe to our new newsletter]]. If you'd like to talk to me (Szymon) off-wiki, you will find me on Discord and Telegram. Thank you!<section end="body" />
</div>
<bdi lang="en" dir="ltr">[[m:user:NKohli (WMF)|NKohli (WMF)]], [[m:user:SGrabarczuk (WMF)|SGrabarczuk (WMF)]]</bdi> 21:36, 26 اَگست 2025 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Quiddity_(WMF)/sandbox6&oldid=29181713 -->
== <span lang="en" dir="ltr">Server switch - Your wiki will be read-only for a short time soon</span> ==
<div lang="en" dir="ltr">
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster.
All traffic will switch on '''{{#time:j xg|2025-09-24|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2025-09-24T15:00|en}} {{#time:H:i e|2025-09-24T15:00}}]'''.
Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation.
You can contribute to the [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate translation or proofreading] of this banner text.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2025-09-24|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule.
'''Please share this information with your community.'''</div><section end="server-switch"/>
</div>
<span dir=ltr>[[m:User:Trizek (WMF)|Trizek (WMF)]] ([[m:User talk:Trizek (WMF)|{{int:talk}}]])</span> 15:41, 18 سیٚپٹَمبَر 2025 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29170715 -->
== <span lang="en" dir="ltr">Migration to Parsoid</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
<em>[[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Parsoid Read Views/Read View Announcement|Read this in another language]]</em>
Hello everyone! I am glad to inform you that as the next step in the [[mw:Special:MyLanguage/Parsoid/Parser Unification|Parser Unification]] project, Parsoid will soon be turned on as the default article renderer on your wiki. We are gradually increasing the number of wikis using Parsoid, with the intention of making it the default wikitext parser for MediaWiki's next long-term support release. This will make our wikis more reliable and consistent for editors, readers, and tools to use, as well as making the development of future wikitext features easier.
If this disrupts your workflow, don’t worry! You can still opt out through a user preference or turn Parsoid off on the current page using the Tools submenu, as described in the [[mw:Special:MyLanguage/Help:Extension:ParserMigration|Extension:ParserMigration]] documentation.
There is [[mw:Special:MyLanguage/Parsoid/Parser_Unification/Confidence_Framework|more information about our roll-out strategy]] available, including the testing done before we turn on Parsoid for a new wiki.
To report bugs and issues, please look at our [[mw:Special:MyLanguage/Parsoid/Parser Unification/Known Issues|known issues]] documentation and if you found a new bug please create a phab ticket and tag the [[phab:project/view/5846|Content Transform Team in Phabricator]].
<section end="announcement-content" />
</div>
<bdi lang="en" dir="ltr">[[mw:User:ABreault (WMF)|Content Transform Team]]</bdi> 23:03, 18 سیٚپٹَمبَر 2025 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:ABreault (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Wikimedia_Foundation/Product_and_Technology/Parsoid_Read_Views/2025-09-22_Wikipedias&oldid=29294855 -->
== <span lang="en" dir="ltr">Have your say: vote for the 2025 Board of Trustees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Hello all,
The voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|2025 Board of Trustees election]] is now open. Candidates are running for two (2) seats on the Board.
To check your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Voter eligibility guidelines|voter eligibility page]].
Learn more about them by [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidates|reading their application statements and watch their candidacy videos]].
When you are ready, go to the [[m:Special:SecurePoll/vote/405|SecurePoll voting page to vote]].
'''The vote is open from October 8 at 00:00 UTC to October 22 at 23:59 UTC.'''
Best regards,
Abhishek Suryawanshi<br />Chair, Elections Committee<section end="announcement-content" />
</div>
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 04:48, 9 اَکتوٗبَر 2025 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29360896 -->
== <span lang="en" dir="ltr">Help us decide the name of the new Abstract Wikipedia project</span> ==
<div lang="en" dir="ltr">
<section begin="function1"/>
{{int:Hello}}. Please help pick a name for the new Abstract Wikipedia wiki project. This project will be a wiki that will enable users to combine functions from [[:f:|Wikifunctions]] and data from Wikidata in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere).
There will be two rounds of voting, each followed by legal review of candidates, with votes beginning on 20 October and 17 November 2025. Our goal is to have a final project name selected on mid-December 2025. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki.
{{Int:Feedback-thanks-title}}
<section end="function1"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:43, 20 اَکتوٗبَر 2025 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29432175 -->
== <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Each year, typically from October through December, several of the movement’s committees seek new volunteers.
Read more about the committees on their Meta-wiki pages:
* [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee (AffCom)]]
* [[m:Special:MyLanguage/Ombuds commission|Ombuds commission (OC)]]
* [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]]
Applications for the committees open on October 30, 2025. Applications for the Affiliations Committee, Ombuds commission and the Case Review Committee close on December 11, 2025. Learn how to apply by [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Committee appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email cst[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org with any questions you may have.
For the Committee Support team,
<section end="announcement-content" />
</div>
-[[m:User:MKaur (WMF)| MKaur (WMF)]] 14:12, 30 اَکتوٗبَر 2025 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:MKaur (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29517125 -->
== <span lang="en" dir="ltr">Reminder: Help us decide the name of the new Abstract Wikipedia project</span> ==
<div lang="en" dir="ltr">
<section begin="function2"/>
{{int:Hello}}. Reminder: Please help to choose name for the new Abstract Wikipedia wiki project. The finalist vote starts today. The finalists for the name are: <span lang="en" dir="ltr" class="mw-content-ltr">Abstract Wikipedia, Multilingual Wikipedia, Wikiabstracts, Wikigenerator, Proto-Wiki</span>. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki.
{{Int:Feedback-thanks-title}}
<section end="function2"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:22, 20 نَوَمبَر 2025 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29583860 -->
== Thank You for Last Year – Join Wiki Loves Ramadan 2026 ==
Dear Wikimedia communities,
We hope you are doing well, and we wish you a happy New Year.
''Last year, we captured light. This year, we’ll capture legacy.''
In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects.
We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community.
📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]]
If you have questions about the project, please refer to the FAQs:
* [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]]
* [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]]
''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]'''''
''Stay connected and receive updates:''
* [https://t.me/WikiLovesRamadan Telegram channel]
* [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list]
We look forward to collaborating with you and your community.
'''The Wiki Loves Ramadan 2026 Organizing Team''' 19:44, 16 جَنؤری 2026 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 -->
== Feminism and Folklore 2026 starts soon ==
<div style="border:8px maroon ridge;padding:6px;">
[[File:Feminism and Folklore 2026 logo.svg|centre|550px|frameless]]
::<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="text-align: center; width: 100%;">''{{int:please-translate}}''</div>
;Invitation to Organize Feminism and Folklore 2026
Dear Wiki Community,
We are pleased to invite Wikimedia communities, affiliates, and independent contributors to organize the '''[[:m:Feminism and Folklore 2026|Feminism and Folklore 2026]]''' writing competition on your local Wikipedia.
The international campaign will run from '''1 February to 31 March 2026''' and aims to improve coverage of feminism, women’s histories, gender-related topics, and folk culture across Wikipedia projects.
;About the Campaign
'''Feminism and Folklore''' is a global writing initiative that complements the '''[[:c:Commons:Wiki Loves Folklore 2026|Wiki Loves Folklore]]''' photography competition. While Wiki Loves Folklore focuses on visual documentation, this writing campaign addresses the '''gender gap on Wikipedia''' by improving encyclopedic content related to folk culture and marginalized voices.
;What Can Participants Write About?
Communities can contribute by creating, expanding, or translating articles related to:
* Folk festivals, rituals, and celebrations
* Folk dances, music, and traditional performances
* Women and queer figures in folklore
* Women in mythology and oral traditions
* Women warriors, witches, and witch-hunting narratives
* Fairy tales, folk stories, and legends
* Folk games, sports, and cultural practices
Participants may work from curated article lists or generate new article suggestions using campaign tools.
;How to Sign Up as an Organizer
Organizers are requested to complete the following steps to register their community:
# Create a local project page on your wiki [[:m:Feminism and Folklore/Sample|(see sample)]]
# Set up the campaign using the '''CampWiz''' tool
# Prepare a local article list and clearly mention:
#* Campaign timeline
#* Local and international prizes
# Request a site notice from local administrators [[:mr:Template:SN-FNF|(see sample)]]
# Add your local project page and CampWiz link to the '''[[:m:Feminism and Folklore 2026/Project Page|Meta project page]]'''
;Campaign Tools
The Wiki Loves Folklore Tech Team has introduced tools to support organizers and participants:
* '''Article List Generator by Topic''' – Helps identify articles available on English Wikipedia but missing in your local language Wikipedia. The tool allows customized filters and provides downloadable article lists in CSV and wikitable formats.
* '''CampWiz''' – Enables communities to manage writing campaigns effectively, including jury-based evaluation. This will be the third year CampWiz is officially used for Feminism and Folklore.
Both tools are now available for use in the campaign. '''[https://tools.wikilovesfolklore.org/ Click here to access the tools]'''
;Learn More & Get Support
For detailed information about rules, timelines, and prizes, please visit the
'''[[:m:Feminism and Folklore 2026|Feminism and Folklore 2026 project page]]'''.
If you have any questions or need assistance, feel free to reach out via:
* '''[[:m:Talk:Feminism and Folklore 2026/Project Page|Meta talk page]]'''
* Email us using details on the contact page.
;Join Us
We look forward to your collaboration and coordination in making Feminism and Folklore 2026 a meaningful and impactful campaign for closing gender gaps and enriching folk culture content on Wikipedia.
Thank you and best wishes,
'''[[:m:Feminism and Folklore 2026|Feminism and Folklore 2026 International Team]]'''
----
''Stay connected:''
[[File:B&W Facebook icon.png|link=https://www.facebook.com/feminismandfolklore/|30x30px]]
[[File:B&W Twitter icon.png|link=https://twitter.com/wikifolklore|30x30px]]
</div></div>
== Invitation to Host Wiki Loves Folklore 2026 in Your Country ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="text-align: center; width: 100%;">''{{int:please-translate}}''</div>
[[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]]
Hello everyone,
We are delighted to invite Wikimedia affiliates, user groups, and community organizations worldwide to participate in '''Wiki Loves Folklore 2026''', an international initiative dedicated to documenting and celebrating folk culture across the globe.
;About Wiki Loves Folklore
'''Wiki Loves Folklore''' is an annual international photography competition hosted on Wikimedia Commons. The campaign runs from '''1 February to 31 March 2026''' and encourages photographers, cultural enthusiasts, and community members to contribute photographs that highlight:
* Folk traditions and rituals
* Cultural festivals and celebrations
* Traditional attire and crafts
* Performing arts, music, and dance
* Everyday practices rooted in folk heritage
Through this campaign, we aim to preserve and promote diverse folk cultures and make them freely accessible to the world.
[[:c:Commons:Wiki_Loves_Folklore_2026|Project page on Wikimedia Commons]]
; Host a Local Edition
As we celebrate the '''eight edition''' of Wiki Loves Folklore, we warmly invite communities to organize a local edition in their country or region. Hosting a local campaign is a great opportunity to:
* Increase visibility of your region’s folk culture
* Engage new contributors in your community
* Enrich Wikimedia Commons with high-quality cultural content
'''[[:c:Commons:Wiki_Loves_Folklore_2026/Organize|Sign up to organize]]:'''
If your team prefers to organize the competition in ''either February or March only'', please feel free to let us know.
If you are unable to organize, we encourage you to share this opportunity with other interested groups or organizations in your region.
;Get in Touch
If you have any questions, need support, or would like to explore collaboration opportunities, please feel free to contact us via:
* The project Talk pages
* Email: '''support@wikilovesfolklore.org'''
We are also happy to connect via an online meeting if your team would like to discuss planning or coordination in more detail.
Warm regards,
'''The Wiki Loves Folklore International Team'''
</div>
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 13:21, 18 جَنؤری 2026 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Tiven2240@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=29228188 -->
== <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]].
The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]].
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" />
</div>
21:01, 19 جَنؤری 2026 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 -->
== وِکی کانفرٛنٕس اِنڈِیا 2026 خٲطرٕ چھِ سُکالرشپ درخاستہٕ یَلہٕ ==
سَلام تہٕ آداب،
وِکی کانفرٛنٕس اِنڈِیا 2026 خٲطرٕ چھِ سُکالرشپٕچ درخاستہٕ یلہٕ۔ یہِ کانفرٛنٕس سپدِ 4 پٮ۪ٹھٕ 6 سَتمبر 2026 تام کوچی، ہندوستانَس منٛز۔
وِکی کانفرٛاس اِنڈِیا چھِ وِکیٖمیٖڈِین، کمیونٹی آرگنائزر، تہٕ ہِندوستان، جٔنوٗبی ایشیا تہٕ اَمہِ نؠبَر مَضموٗن ہِنٛدِ اِکہٕ وٹہٕ کَران۔ یہِ چھِ آزاد علمی تحریکہِ مضبوٗط بناونَس منٛز رٲبطہٕ، ہیٚچھن، تجرُبَن ہُنٛد اشتراک کرنٕچ تہٕ تعاون کرنٕچ جاے۔
اگر تُہؠ وِکیٖمیٖڈیا مَنصوٗبَن مَنٛز سرگرم حِصہٕ نِوان چھِو یا عَوٲمی سرگرمیَن مَنٛز شٲمِل چھِو، تیٚلہِ چھِو تۄہہِ سُکالرشپ خٲطرٕ درخاست دِنہٕ خٲطرٕ حوصلہٕ اَفزٲیی یِوان کرنہٕ۔ تفصیلی اعلان چھُ یَتھ جاے۔ 🙂
درخاستُک آخری تٲریٖخ: [15 اپریل 2026 11:59 شامَس IST]
درخاست لنک: https://docs.google.com/forms/d/e/1FAIpQLSdA3rR9xX_k31dzJrjM5MTDNYNUIRcAB45S4TflsYCbGJNrzg/viewform
مٔزیٖد معلوٗماتھ: https://meta.wikimedia.org/wiki/WikiConference_India_2026/Scholarship
مہربٲنی کٔرِتھ کٔرِو یہِ اعلان پننہِ برادری منٛز باقین سٲتؠ شیئر۔
شُکرِیہ تُہُنٛد.
وِکی کانفرٛنٕس اِنڈِیا 2026 اِنتِظٲمی ٹیٖم
-[[رُکُن:Gnoeee|Gnoeee]] ([[رُکُن کَتھ:Gnoeee|کَتھ صَفہٕ]]) 21:05, 28 مارٕچ 2026 (UTC)
== Join the sixth Ukraine’s Cultural Diplomacy Month on Wikipedia! ==
<div lang="en" dir="ltr">
[[File:Ukraine’s Cultural Diplomacy Month on Wikipedia 2026.png|right|250px|thumb|link=https://meta.wikimedia.org/wiki/Ukraine%27s_Cultural_Diplomacy_Month_2026|Join our campaign!]]
{{int:please-translate}}
Dear Wikipedians!
[[:m:Special:MyLanguage/Wikimedia Ukraine|Wikimedia Ukraine]], in cooperation with the [[:en:Ministry of Foreign Affairs of Ukraine|MFA of Ukraine]] and [[:en:Ukrainian Institute|Ukrainian Institute]], has launched the sixth edition of writing challenge "'''[[:m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2026|Ukraine's Cultural Diplomacy Month]]'''", which lasts from '''1st April''' until '''30th April 2026'''.
The initiative aims to promote knowledge about Ukrainian culture abroad by creating and improving Wikipedia articles in multiple languages. This year marks the sixth edition of the campaign, which will focus on contemporary culture, making today’s artistic voices and practices more visible to international audiences.
🧩'''How to participate?'''
Choose an article from the suggested list → Write an article in your language, or improve an existing one according to the rules → Add your contribution to the contest page and calculate your points → Win prizes and receive a certificate of participation → Become a promoter of truthful knowledge about Ukraine.
🧩'''[[m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2026|Check our main page for more information]]'''.
'''If you are interested in coordinating long-term community engagement for the campaign and becoming a local ambassador, we would love to hear from you! Please let us know your interest.'''
If not, then we encourage you to translate the [[m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2026|landing page of the contest]] and [https://meta.wikimedia.org/wiki/Special:MessageGroupStats?group=Centralnotice-tgroup-UCDM2026banner&messages=&language=en&x=D banner] into your own language.
Also, we set up a [[:m:CentralNotice/Request/Ukraine's Cultural Diplomacy Month 2026|banner]] to notify users of the possibility to participate in this challenge!
[[:m:User:OlesiaLukaniuk (WMUA)|OlesiaLukaniuk (WMUA)]] ([[:m:User talk:OlesiaLukaniuk (WMUA)|talk]]) 04:35, 1 April 2026 (UTC)
</div>
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:OlesiaLukaniuk (WMUA)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:OlesiaLukaniuk_(WMUA)/list_of_wikis&oldid=28552112 -->
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 17:11, 3 اپریٖل 2026 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 -->
== Request for comment (global AI policy) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies for writing in English. {{int:Please-translate}}
A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}}
[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 00:57, 26 اپریٖل 2026 (UTC)
</bdi>
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 -->
== <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC].
Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" />
</div>
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:14, 27 مٔی 2026 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== RFC about AI-generated content in Wikimedia Commons ==
<bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|کَتھ]])</bdi> 17:11, 23 جوٗن 2026 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> ==
<div lang="en" dir="ltr">
<section begin="Message"/>
'''Legal & Safety Contacts'''
Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]].
<section end="Message"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:29, 25 جوٗن 2026 (UTC)
(This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 -->
malnrpecq7x13utgg6wwf236tvncfm7
پونؠ یا آب
0
6604
142889
142415
2026-06-25T18:04:45Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142889
wikitext
text/x-wiki
{{infobox chembox|color=Navajowhite}}
'''پونؠ''' ( [[کٲشِر زَبان|کٲشُر]] : /poːnʲ/) یا '''آب ''' ( [[کٲشِر زَبان|کٲشُر]] : /a ːb/) چھُ اَکھ اۆدُر [[پَدارتھ]] یُس کۄلَن، سَرَن تہٕ سَمَنٛدرَن بیترِ مَنٛز چھُ آسان۔ یہِ چھُ چؠنَس، چھَلنس، چھۄکنس بیترِ اِستِمال کَرنہٕ یِوان۔
[[فَیِل:States of Matter.svg|thumb|پٲنِس ترٛؠن شَکلَن]]
==حَوالہٕ==
{{حَوالہٕ وَرٲے}}
{{Uncategorized|date=نَوَمبَر ٢٠٢١}}
kz94vybmh55n7c67jd7z6em9wx6e0xz
وینَزوٗیِلا
0
10388
142804
119913
2026-06-25T13:53:51Z
آیات محراج
11062
/* */
142804
wikitext
text/x-wiki
{{Infobox settlement/Wikidata|anthem_audio=United_States_Navy_Band_-_Gloria_al_Bravo_Pueblo.ogg}}
'''وینَزوٗیِلا''' چھُ اَکھ [[مُلُک]] یُس جٔنوٗبِی اَمریٖکا کِس شُمٲلی بٕٹھِس پؠٹھ واقہٕ چھُ. <ref>{{ویب حَوالہٕ|date=2022-02-06|title=How S.Res.375 Supports Women and Children in Venezuela|url=https://www.borgenmagazine.com/women-and-children/|access-date=2022-02-07|website=BORGEN|language=en-US}}</ref>
== حَوالہٕ ==
{{حَوالہٕ}}
[[زٲژ:مُلُک]]
85unl8gtjz2b2sg1i9492vh4agg4nn0
142839
142804
2026-06-25T18:00:35Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142839
wikitext
text/x-wiki
{{Infobox settlement/Wikidata|anthem_audio=United_States_Navy_Band_-_Gloria_al_Bravo_Pueblo.ogg}}
'''وینَزوٗیِلا''' چھُ اَکھ [[مُلُک]] یُس جٔنوٗبِی اَمریٖکا کِس شُمٲلی بٕٹھِس پؠٹھ واقہٕ چھُ۔ <ref>{{ویب حَوالہٕ|date=2022-02-06|title=How S.Res.375 Supports Women and Children in Venezuela|url=https://www.borgenmagazine.com/women-and-children/|access-date=2022-02-07|website=BORGEN|language=en-US}}</ref>
== حَوالہٕ ==
{{حَوالہٕ}}
[[زٲژ:مُلُک]]
s1prt9i2pj2a1dj3v7zjrfv2weuksgv
ہایڈروجَن
0
12411
142890
142407
2026-06-25T18:04:50Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142890
wikitext
text/x-wiki
{{Infobox element|color=Lightpink}}
'''ہایڈروجَن''' یا '''آبساز''' چھُ اَکھ کیٖمِیٲیی عُنصَر۔ اَتھ چھِ اَنٛگریٖزی مَنٛز Hydrogen وَنان۔<ref>{{Cite web|title=Element: Hydrogen|url=https://pse-info.de/en/element/H|access-date=2026-01-21|website=Periodic table|language=en}}</ref>
== حَوالہٕ ==
[[زٲژ:رساێن تۄتھ]]
iyinltcjnhlfo7lj5wmf39nqaxes6ef
یورینِیَم
0
12416
142891
142405
2026-06-25T18:04:55Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142891
wikitext
text/x-wiki
{{infobox element
| color = palegreen
}}
'''یورینِیَم''' چھُ اَکھ رسایٚن تۄتھ۔ اَتھ چھِ اَنٛگریٖزی مَنٛز Uranium وَنان۔
== حَوالہٕ ==
{{حَوالہٕ وَرٲے}}
[[زٲژ:رساێن تۄتھ]]
fniq64qep74jcx16r4pcjlkyrcbr1v7
وِکیٖپیٖڈیا:رُکُن فِہرِست اؠڈِٹ تَعداد مُطٲبِق
4
14505
142896
142754
2026-06-25T18:05:25Z
Nadeemulhaqmir-bot
9480
Updated List of Wikipedians
142896
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/آیات محراج|31936]]
|-
| 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|21538]]
|-
| 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|13401]]
|-
| 4
| [[User: Uhaas bot | Uhaas bot]]
| [[Special:Contributions/Uhaas bot|11723]]
|-
| 5
| [[User: SieBot | SieBot]]
| [[Special:Contributions/SieBot|2432]]
|-
| 6
| [[User: Xqbot | Xqbot]]
| [[Special:Contributions/Xqbot|2374]]
|-
| 7
| [[User: Humzah Rouf Phumboo | Humzah Rouf Phumboo]]
| [[Special:Contributions/Humzah Rouf Phumboo|2268]]
|-
| 8
| [[User: SakuraBot | SakuraBot]]
| [[Special:Contributions/SakuraBot|2230]]
|-
| 9
| [[User: Koshur | Koshur]]
| [[Special:Contributions/Koshur|2227]]
|-
| 10
| [[User:Rishabhbhat|Rishabhbhat]] ([[User talk:Rishabhbhat|कथ]])
| [[Special:Contributions/Rishabhbhat|1669]]
|-
|}
</div>
dxf3lp5f70kiw481vsp4jxvqn1m88zr
فرما:Infobox person/Wikidata
10
14934
142829
142776
2026-06-25T15:59:40Z
آیات محراج
11062
/* */
142829
wikitext
text/x-wiki
{{Infobox|child={{{child|}}}
| bodyclass = biography vcard
| above = {{Br separated entries
| 1 = {{#if:{{{honorific prefix|{{{honorific_prefix|{{{honorific-prefix|{{{pre-nominals|}}}}}}}}}}}}|<div class="honorific-prefix" style="font-size: 77%; font-weight: normal; display:inline;">{{{honorific prefix|{{{honorific_prefix|{{{honorific-prefix|{{{pre-nominals|}}}}}}}}}}}}</div>}}
| 2 = <div class="fn" style="display:inline">{{#if:{{{name|}}}|{{{name}}}|{{PAGENAMEBASE}}}}</div>
| 3 = {{#if:{{{honorific suffix|{{{honorific_suffix|{{{honorific-suffix|{{{post-nominals|}}}}}}}}}}}}|<div class="honorific-suffix" style="font-size: 77%; font-weight: normal; display:inline;">{{{honorific suffix|{{{honorific_suffix|{{{honorific-suffix|{{{post-nominals|}}}}}}}}}}}}</div>}}
}}
| abovestyle = font-size:125%; {{{abovestyle|}}}
| image = {{#invoke:InfoboxImage |InfoboxImage |image={{#invoke:WikidataIB | getValue | rank=best |P18 |name=image |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced=no |noicon=yes | maxvals=1 |{{{image|}}}}} |size={{{image size|{{{image_size|{{{imagesize|}}}}}}}}} |sizedefault=frameless |upright={{{image_upright|1}}} |alt={{{alt|}}} |suppressplaceholder=yes}}
| caption = {{#if:{{{image|}}}|{{{caption|}}}|{{#if:{{#invoke:WikidataIB |getValue | rank=best |P18 |qid={{#invoke:WikidataIB |getQid |qid={{{qid|}}} }} |fwd={{{fwd|ALL}}} |osd=no |noicon=y |qual=P585 |qualsonly=yes| maxvals=1}}|{{#invoke:WikidataIB |getValue | rank=best |P18 |qid={{#invoke:WikidataIB |getQid |qid={{{qid|}}} }} |fwd={{{fwd|ALL}}} |osd=no |noicon=y |qual=P585 |qualsonly=yes| maxvals=1}} ہَس مَنٛز|{{{caption|}}}}}}}
| label1 =
| data1 = {{#ifeq:{{{name|{{PAGENAMEBASE}}}}}|{{#invoke:WikidataIB | getValue | rank=best |P1559 |name=native_name |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |noicon=yes | fetchwikidata={{{fetchwikidata|}}} |{{{native_name|{{{native name|}}}}}} }}||<span class="nativename" colspan="2" style="text-align:center;font-size:125%; font-weight:bold">{{#invoke:WikidataIB | getValue | rank=best |P1559 |name=native_name |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{native_name|{{{native name|}}}}}} }}</span>}}
<!-- non-wikidata version:
{{#if:{{{native_name|}}}|<span class="nativename" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang}}}"}}>{{{native_name}}}</span>}}
-->
| label2 = وۄشژار
| data2 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=pronunciation |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{pronunciation|}}} }}
| label10 = پٲدٲیِش
| data10 = {{br separated entries
|1={{#invoke:WikidataIB | getValue | rank=best |P1477 |name=birth_name |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}}|{{{birth_name|}}}}}
|2={{#if:{{{birth_date|}}}|{{{birth_date|}}}|{{#invoke:WikidataIB | getValue | rank=best |P569 |name=birth_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}}|{{{birth_date|}}} |df={{{dateformat|dmy}}} }} {{#if:{{{birth_date|}}}||{{#if:{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |noicon={{{noicon|}}} |{{{death_date|}}} | df={{{dateformat|dmy}}} }}|| {{#if:{{#invoke:WikidataIB | getValue | rank=best |P569 |name=death_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{death_date|}}} | df={{{dateformat|dmy}}} }}|{{#ifexpr:{{#invoke:WikidataIB|getDatePrecision|P569|qid={{{qid|}}}}}>8|(وٲنٛس {{#expr: trunc ({{#time: Y.md}}-{{#time: Y.md|{{#titleparts:{{wikidata|property|raw|{{{qid|}}}|P569}}|1}}}})}})}}}}}}{{#ifeq:{{{refs|no}}}|yes|{{wikidata|references|normal+|{{{qid|}}}|P569}} }} }} }}
|3={{if then show |1={{#invoke:WikidataIB | getValue | rank=best |P19 |qual=P17 |name=birth_place |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} | {{{birth_place|}}} }} |2=|3=<span class="birthplace"> |4=</span>}}
}}
| label11 = بَپتِسمَہ
| data11 = {{#invoke:WikidataIB | getValue | rank=best |P1636 |name=baptised |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{baptised|}}} }}
| label12 = غٲب
| data12 = {{Br separated entries|1={{#invoke:WikidataIB | getValue | rank=best |P0 |name=disappeared_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{disappeared_date|}}} }}|2={{#invoke:WikidataIB | getValue | rank=best |P0 |name=disappeared_place |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{disappeared_place|}}} }}}}
| label13 = حثیَت
| data13 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=status |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{status|{{{disappeared_status|}}}}}} }}
| label14 =وَفات
| data14 = {{br separated entries
|1={{#if:{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{death_date|}}} | df={{{dateformat|dmy}}} }}|{{#if:{{{death_date|}}}|{{{death_date|}}}|{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{death_date|}}} | df={{{dateformat|}}} }} {{#if:{{{death_date|}}}||{{#if:{{#invoke:WikidataIB | getValue | rank=best |P569 |name=birth_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{birth_date|}}} | df={{{dateformat|dmy}}} }}|{{#ifexpr: {{#invoke:WikidataIB |getDatePrecision |P569 |qid={{{qid|}}}}} >= 11 and {{#invoke:WikidataIB |getDatePrecision |P570 |qid={{{qid|}}}}} >= 11 | (وٲنٛسہِ {{age in years|{{#invoke:WikidataIB | getValue | rank=best |P569 |name=birth_date| maxvals=1 |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon=yes | df=ymd |{{{birth_date|}}}}}|{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date| maxvals=1 |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon=yes| df=ymd |{{{death_date|}}}}}}})|{{#ifexpr: {{#invoke:WikidataIB |getDatePrecision |P569 |qid={{{qid|}}}}} >= 9 and {{#invoke:WikidataIB |getDatePrecision |P570 |qid={{{qid|}}}}} >= 9| (وٲنٛسہِ {{age in years|{{#invoke:WikidataIB | getValue | rank=best |P569 |name=birth_date| maxvals=1 |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon=yes | df=y |{{{birth_date|}}}}}|{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date| maxvals=1 |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon=yes| df=y |{{{death_date|}}}}}}})|}}}}}}}}}} {{#ifeq:{{{refs|no}}}|yes|{{wikidata|references|normal+|{{{qid|}}}|P570}} }}}}
|2=<!--{{#if:{{#invoke:WikidataIB | getValue | rank=best |P509 |name=death_cause |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{death_cause|}}} }}|<span class="deathcause">From {{#invoke:WikidataIB | getValue | rank=best |P509 |name=death_cause |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |noicon={{{noicon|}}} |{{{death_cause|}}} }}</span>}}-->
|3={{if then show |1={{#invoke:WikidataIB | getValue | rank=best |P20 |qual=P17 |name=death_place |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} | {{{death_place|}}} }} |2=|3=<span class="deathplace"> |4=</span>}}
}}
| label15 = مرنُک وجہ
| data15 = {{#invoke:WikidataIB |getValue |rank=best |P509 |name=death_cause |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}}|noicon={{{noicon|}}} |{{{death_cause|}}} }}
| label16 = لاش دٔریافت
| data16 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=discovered |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{body discovered|{{{body_discovered|}}}}}} }}
| label17 = {{#if:{{{burial_place|}}}|دَفن جاے|ٲخری جاے}}
| data17 = {{#if:{{{burial_place|}}}|{{Br separated entries|1={{{burial_place|}}}|2={{{burial_coordinates|}}}}}|{{Br separated entries|1={{#invoke:WikidataIB | getValue | rank=best |P119 |name=restingplace |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} | {{{resting place|{{{resting_place|{{{restingplace|}}}}}}}}}}}|2={{{resting place coordinates|{{{resting_place_coordinates|{{{restingplacecoordinates|}}}}}}}}}}}}}
| class17 = label
| label18 = مجموعہ
| data18 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=monuments |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{monuments|}}} }}
| label20 = قومیتھ
| data20 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=nationality |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{nationality|}}} }}
| class20 = category
| label21 = باقٕے ناو
| data21 = {{#invoke:WikidataIB | getValue | rank=best |P1449 |name=othername |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{other names|{{{other_names|{{{othername|{{{alias|}}}}}}}}}}}} }}
| class21 = nickname
| label23 = شَہَریَتھ
| data23 = {{#invoke:WikidataIB | getValue | rank=best |P27 |name=citizenship |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} | {{{citizenship|}}} }}
| class23 = category
| label24 = تٲلیٖم
| data24 = {{#invoke:WikidataIB | getValue | rank=best |P512 |name=education |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{education|}}} }}
| label25 = طٲلبہٕ عٔلِم
| data25 = {{#invoke:WikidataIB | getValue | rank=best |P69 |name=alma |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |list={{{list|ubl}}}| {{{alma mater|{{{alma_mater|}}}}}} }}
| label26 = پیٚیشہِ
| data26 = {{#invoke:String2 | ucfirst | {{#invoke:WikidataIB | getValue | rank=best |P106 |name=occupation |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |list={{{list|}}} |qual=DATES |{{{occupation|}}} }} }}
| class26 = role
| label27 = عَملی ؤری
| data27 = {{#if:{{{years active|{{{years_active|{{{yearsactive|}}}}}}}}}
| {{{years active|{{{years_active|{{{yearsactive|}}}}}}}}
| {{#invoke:WikidataIB | getValue | rank=best | P2031 | qid={{{qid|}}} | suppressfields={{{suppressfields|}}} | fetchwikidata={{{fetchwikidata|}}} | onlysourced={{{onlysourced|}}} | noicon={{{noicon|}}} }}{{#if:{{#invoke:WikidataIB | getValue | rank=best | P2032 | qid={{{qid|}}} | fetchwikidata={{{fetchwikidata|}}} | onlysourced={{{onlysourced|}}} | noicon={{{noicon|}}} }}| – {{#invoke:WikidataIB | getValue | rank=best | P2032 | qid={{{qid|}}} | suppressfields={{{suppressfields|}}} | fetchwikidata={{{fetchwikidata|}}} | onlysourced={{{onlysourced|}}} | noicon={{{noicon|}}} }}}}
}}
| label28 = دور
| data28 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=era |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{era|}}} }}
| class28 = category
| label29 = مُلٲزِم
| data29 = {{#invoke:WikidataIB | getValue | rank=best |P108 |name=employer |qid={{{qid|}}} |qual=DATES |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |list={{{list|ubl}}} | sorted=yes | {{{employer|}}} }}
| class29 = org
| label30 = {{#if:{{{organisation|}}}|تَنظیٖم|تَنظیٖم}}
| data30 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=organization |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{organisation|{{{organization|{{{organizations|}}}}}}}}} }}
| class30 = org
| label31 = نفری
| data31 = {{#invoke:WikidataIB | getValue | rank=best |P1875 |name=agent |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}}|onlysourced={{{onlysourced|}}} |noicon ={{{noicon|}}} |{{{agent|}}} }}
| class31 = agent
| label32 = زاننہٕ یوان
| data32 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=known |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{known for|{{{known_for|{{{known|}}}}}}}}} }}
| label33 = کٲم
| data33 = {{br separated entries
|1={{#invoke:WikidataIB | getValue | rank=best |P800 |name=works |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |list={{{list|}}} |sorted=yes|noicon={{{noicon|}}} |{{{works|{{{credits|{{{notable works|{{{notable_works|}}}}}}}}}}}} }}
|2={{#if:{{#invoke:WikidataIB | getValue | rank=best |P1455 |name=list of works |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|no}}} |noicon={{{noicon|}}} |{{{list of works|{{{list_of_works|}}}}}} }}|See {{#invoke:WikidataIB | getValue | rank=best |P1455 |name=list of works |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|no}}} |list={{{list|}}} |sorted=yes|noicon={{{noicon|}}} |{{{list of works|{{{list_of_works|}}}}}} }}}}}}
| label34 = انداز
| data34 = {{#invoke:WikidataIB | getValue | rank=best |P136 |name=style |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} | {{{style|}}} }}
| class34 = category
| label37 = گرٕ عَلاقہٕ
| data37 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=home town |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{home town|{{{home_town|}}}}}} }}
| label38 = تنخواہ
| data38 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=salary |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{salary|}}} }}{{{salary|}}}
| label39 = کُل قٟمت
| data39 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=worth |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{net worth|{{{net_worth|{{{networth|}}}}}}}}} }}
| label40 = تھزَر
| data40 = {{#if:{{{height_m|{{{height_cm|}}}}}}{{{height_ft|}}}{{{height_in|}}} | {{convinfobox|{{{height_m|{{{height_cm|}}}}}}|{{#if:{{{height_m|}}}|m|cm}}|{{{height_ft|}}}|ft|{{{height_in|}}}|in}}}}{{#if:{{{height|}}} | {{infobox person/height|{{{height|}}}}}}}
| label41 = وَزَن
| data41 = {{#if:{{{weight_kg|}}}{{{weight_st|}}}{{{weight_lb|}}} | {{convinfobox|{{{weight_kg|}}}|kg|{{{weight_st|}}}|st|{{{weight_lb|}}}|lb}}}}{{#if:{{{weight|}}} | {{infobox person/weight|{{{weight|}}}}}}}
| label42 = ٹی وی
| data42 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=television |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{television|}}} }}
| label43 = لَقَب
| data43 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=title |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{title|}}} }}
| class43 = title
| label44 = اِصطلاح
| data44 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=term |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{term|}}} }}
| label45 = برٛونٛہہ اَدیٖکٲرؠ
| data45 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=predecessor |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{predecessor|}}} }}
| label46 = پتہِ اَدیٖکٲرؠ
| data46 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=successor |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{successor|}}} }}
| label47 = سِیٲسی جمٲژ
| data47 = {{#invoke:WikidataIB | getValue | rank=best |P102 |name=party |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{party|}}} }}
| class47 = org
| label48 = تٔحریٖک
| data48 = {{#invoke:WikidataIB | getValue | rank=best |P135 |name=movement |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{movement|}}} }}
| class48 = category
| label49 = مُخٲلف
| data49 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=opponents |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{opponents|}}} }}
| label50 = بورٛڈ مؠمبر
| data50 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=boards |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{boards|}}} }}
| label53 = مُجرِمانہٕ جُرم
| data53 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=criminal charge |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{criminal charge|{{{criminal_charge|}}}}}} }}
| label54 = مُجرِمانہٕ پینلٹی
| data54 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=criminal penalty |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{criminal penalty|{{{criminal_penalty|}}}}}} }}
| label55 = {{#if:{{{judicial_status|{{{judicial status|}}}}}}|عدالتی حیثیت|مُجرِمانہٕ حیثیت}}
| data55 = {{#if:{{{judicial status|{{{judicial_status|}}}}}} | {{#invoke:WikidataIB | getValue | rank=best |P0 |name=judicial |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{judicial status|{{{judicial_status}}}}}} }} | {{#invoke:WikidataIB | getValue | rank=best |P0 |name=criminal status |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{criminal status|{{{criminal_status|}}}}}}}} }}
| class55 = category
| label56 = بٲژ
| data56 = {{#invoke:WikidataIB | getValue | rank=best |P26 |name=spouse |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|NO}}} |noicon={{{noicon|}}} |list=bullet list |qual=DATES | {{{spouse|}}} }}
| label57 = شریٖک
| data57 = {{#invoke:WikidataIB | getValue | rank=best |P451 |name=partner |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}}|noicon={{{noicon|}}}|list=bullet list|qual=dates |{{{partner|{{{domesticpartner|{{{domestic_partner|}}}}}}}}} }}
| label58 = شُرؠ
| data58 = {{#invoke:WikidataIB | getPreferredValue |P1971 |name=children |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced = {{{onlysourced|}}}| noicon={{{noicon|}}} | {{#invoke:WikidataIB | getPreferredValue |P40 |name=children |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced ={{{onlysourced|}}} |noicon={{{noicon|}}} | {{{children|}}} }} }}
| label59 = مول موج
| data59 = {{#if:{{{parents|}}}|
{{{parents}}}
|
{{Unbulleted list
| {{#invoke:WikidataIB | getValue
| rank=best
| P22
| name=father
| qid={{{qid|}}}
| suppressfields={{{suppressfields|}}}
| fetchwikidata={{{fetchwikidata|}}}
| onlysourced={{{onlysourced|}}}
| noicon={{{noicon|}}}
| {{{father|}}}
}}
| {{#invoke:WikidataIB | getValue
| rank=best
| P25
| name=mother
| qid={{{qid|}}}
| suppressfields={{{suppressfields|}}}
| fetchwikidata={{{fetchwikidata|}}}
| onlysourced={{{onlysourced|}}}
| noicon={{{noicon|}}}
| {{{mother|}}}
}}
}}
}}
| label60 = رشتہٕ دار
| data60 = {{#invoke:WikidataIB | getValue | rank=best |P1038 |name=relatives |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon= {{{noicon|}}}|{{{relations|{{{relatives|}}}}}} }}
| label61 = عَیال
| data61 = {{#invoke:WikidataIB | getValue | rank=best |P3373 |name=family |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{family|}}} }}
| label62 = سلطنَت
| data62 = {{#invoke:WikidataIB | getValue | rank=best|P53||name=dynasty |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |{{{dynasty|}}} }}
| label63 = کال (call) نِشان
| data63 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=callsign |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{callsign|}}} }}
| label64 = یَنام
| data64 = {{#invoke:WikidataIB | getValue | rank=best |P166 |name=awards |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |list={{{list|bullet list}}} |qual=ALL |collapse = 3 | {{{awards|}}} }}
| label65 = {{#if:{{{honours|}}}|اعزاز|اعزاز}}
| data65 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=honours |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{honours|{{{honors|}}}}}} }}
| label66 = وؠب سایِٹ
| data66 = {{if empty | {{#invoke:WikidataIB | getValue | rank=best |P856 |name=website |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced=no |noicon={{{noicon|}}} | {{{website|{{{homepage|}}}}}} }} | {{#invoke:WikidataIB | getValue | rank=best |P1581 |name=blog |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|no}}} |noicon={{{noicon|}}} }} }}
| label77 = عہدٕ رٹان
| data77 = {{#invoke:WikidataIB | getValue | rank=best |P39 |name=position |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced = {{{onlysourced|}}}|list=ubl|qual=P642,P580,P582 |{{{position_held|}}} }}
| class77 = category
| label78 = رینٛک
| data78 = {{#invoke:WikidataIB | getValue | rank=best |P410 |name=military rank |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |qual=DATES |{{{military_rank|}}} }}
| label79 = شاخ
| data79 = {{#invoke:WikidataIB | getValue | rank=best |P241 | name=military branch |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |qual=DATES |{{{military_branch|}}} }}
| label80 = عنوان
| data80 = {{#invoke:WikidataIB | getValue | rank=best |P97 |name=noble title |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |qual=ALL |{{{noble_title|}}} }}
| data67 = {{{misc|{{{module|}}}}}}
| data68 = {{{misc2|{{{module2|}}}}}}
| data69 = {{{misc3|{{{module3|}}}}}}
| data70 = {{{misc4|{{{module4|}}}}}}
| data71 = {{{misc5|{{{module5|}}}}}}
| data72 = {{{misc6|{{{module6|}}}}}}
| header73 = {{#if:{{#invoke:WikidataIB | getValue | rank=best |P109 |name=signature |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced=no |noicon=yes|{{{signature|}}}}}|دستخط}}
| data74 = {{#invoke:InfoboxImage |InfoboxImage |image={{#invoke:WikidataIB | getValue | rank=best |P109 |name=signature |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced=no |noicon=yes |{{{signature|}}}}} |size={{{signature_size|}}} |sizedefault=150px |alt={{{signature alt|{{{signature_alt|}}}}}}}}
| header75 = {{#if:{{{footnotes|}}}|نوٹ}}
| data76 = {{#if:{{{footnotes|}}}|<div style="text-align: left;">
{{{footnotes}}}</div>}}
| below = {{{below|}}}
}}<!--
-->{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox person with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview = Page using [[Template:Infobox person]] with unknown parameter "_VALUE_"|ignoreblank=y
|qid |suppressfields |fetchwikidata |onlysourced |noicon | abovestyle | agent | alias | alma mater | alma_mater | alt | awards | baptised | birth_date | birth_name | birth_place | birthname | boards | body discovered | body_discovered | burial_coordinates | burial_place | callsign | caption | child | children | citizenship | credits | criminal charge | criminal penalty | criminal status | criminal_charge | criminal_penalty | criminal_status | dateformat | death cause | death_cause | death_date | death_place | denomination | disappeared_date | disappeared_place | disappeared_status | domestic_partner | domesticpartner | education | employer | era | ethnicity | family | father | footnotes | height | height_cm | height_ft | height_in | height_m | home town | home_town | homepage | honorific prefix | honorific suffix | honorific_prefix | honorific_suffix | honors | honours | image | image caption | image size | image_caption | image_size | image_upright | imagesize | judicial status | judicial_status | known | known for | known_for | list | misc | misc2 | misc3 | misc4 | misc5 | misc6 | module | module2 | module3 | module4 | module5 | module6 | monuments | mother | movement | name | nationality | native_name | native_name_lang | net worth | net_worth | networth | notable works | notable_works | occupation | opponents | organisation | organization | organizations | other names | other_names | othername | parents | partner | party | position_held | predecessor | pronunciation | refs | relations | relatives | religion | resting place | resting place coordinates | resting_place | resting_place_coordinates | restingplace | restingplacecoordinates | salary | signature | signature alt | signature_alt | signature_size | spouse | status | style | successor | television | term | title | URL | website | weight | weight_kg | weight_lb | weight_st | works | years active | years_active | yearsactive | noble_title | military_rank | military_branch }}<!--
-->{{Main other|
{{#if:{{{1|}}}{{{2|}}}{{{3|}}}{{{4|}}}{{{5|}}}|[[Category:Infobox person using numbered parameter]]}}<!--
-->{{#if:{{{box_width|}}}|[[Category:Infobox person using boxwidth parameter]]}}<!--
-->{{#if:{{{death_date|}}}{{{death_place|}}}|{{#if:{{{salary|}}}{{{net worth|{{{net_worth|{{{networth|}}}}}}}}}|[[Category:Infobox person using certain parameters when dead]]}}}}<!--
-->{{#if:{{{influences|}}}{{{influenced|}}}|[[Category:Infobox person using influence]]}}<!--
-->{{#if:{{{pronunciation|}}}|[[Category:Biography template using pronunciation]]}}<!--
-->{{#if:{{{signature|}}}|[[Category:Biography with signature]]}}[[Category:Articles with hCards]]
}}<includeonly>{{main other|{{#if:{{safesubst:#invoke:Check for unknown parameters|check|unknown=1|preview=1|fetchwikidata|onlysourced|dateformat|noicon|list|suppressfields}}|<!-- Check for locally-defined parameters could go here-->|[[Category:Articles with infoboxes completely from Wikidata]]}}}}</includeonly>
<includeonly>{{main other |[[Category:Articles using Template Infobox person Wikidata]]}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
h39r45jcp0b0036mg7n79cywqoqdjdi
Module:Formatnum
828
15391
142936
73377
2026-06-26T10:39:27Z
آیات محراج
11062
142936
Scribunto
text/plain
-- This module is intended to replace the functionality of Template:Formatnum and related templates.
local p = {}
function p.main(frame)
local args = frame:getParent().args
local prec = args.prec or ''
local sep = args.sep or ''
local number = args[1] or args.number or ''
local lang = args[2] or args.lang or ''
-- validate the language parameter within MediaWiki's caller frame
if lang == "arabic-indic" then -- only for back-compatibility ("arabic-indic" is not a SupportedLanguage)
lang = "fa" -- better support than "ks"
elseif lang == '' or not mw.language.isSupportedLanguage(lang) then
-- Note that 'SupportedLanguages' are not necessarily 'BuiltinValidCodes', and so they are not necessarily
-- 'KnownLanguages' (with a language name defined at least in the default localisation of the local wiki).
-- But they all are ValidLanguageCodes (suitable as Wiki subpages or identifiers: no slash, colon, HTML tags, or entities)
-- In addition, they do not contain any capital letter in order to be unique in page titles (restriction inexistant in BCP47),
-- but they may violate the standard format of BCP47 language tags for specific needs in MediaWiki.
-- Empty/unspecified and unsupported languages are treated here in Commons using the user's language,
-- instead of the local 'ContentLanguage' of the Wiki.
lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
return p.formatNum(number, lang, prec, sep ~= '')
end
local digit = { -- substitution of decimal digits for languages not supported by mw.language:formatNum() in core Lua libraries for MediaWiki
["ml-old"] = { '൦', '൧', '൨', '൩', '൪', '൫', '൬', '൭', '൮', '൯' },
["mn"] = { '᠐', '᠑', '᠒', '᠓', '᠔', '᠕', '᠖', '᠗', '᠘', '᠙'},
["ta"] = { '௦', '௧', '௨', '௩', '௪', '௫', '௬', '௭', '௮', '௯'},
["te"] = { '౦', '౧', '౨', '౩', '౪', '౫', '౬', '౭', '౮', '౯'},
["th"] = { '๐', '๑', '๒', '๓', '๔', '๕', '๖', '๗', '๘', '๙'}
}
function p.formatNum(number, lang, prec, compact)
-- Do not alter the specified value when it is not a valid number, return it as is
local value = tonumber(number)
if value == nil then
return number
end
-- Handle Infinity and NaN to prevent 'got nil' errors later
if value == math.huge or value == -math.huge or value ~= value then
return tostring(value)
end
-- Basic ASCII-only formatting (without paddings)
number = tostring(value)
-- Check the presence of an exponent (incorrectly managed in mw.language:FormatNum() and even forgotten due to an internal bug, e.g. in Hindi)
local exponent
local pos = string.find(number, '[Ee]')
if pos ~= nil then
exponent = string.sub(number, pos + 1, string.len(number))
number = string.sub(number, 1, pos - 1)
else
exponent = ''
end
-- Check the minimum precision requested
prec = tonumber(prec) -- nil if not specified as a true number
if prec ~= nil then
prec = math.floor(prec)
if prec < 0 then
prec = nil -- discard an incorrect precision (not a positive integer)
elseif prec > 14 then
prec = 14 -- maximum precision supported by tostring(number)
end
end
-- Preprocess the minimum precision in the ASCII string
local dot
if (prec or 0) > 0 then
pos = string.find(number, '.', 1, true) -- plain search, no regexp
if pos ~= nil then
prec = pos + prec - string.len(number) -- effective number of trailing decimals to add or remove
dot = '' -- already present
else
dot = '.' -- must be added
end
else
dot = '' -- don't add dot
prec = 0 -- don't alter the precision
end
if lang ~= nil and mw.language.isKnownLanguageTag(lang) == true then
-- Convert number to localized digits, decimal separator, and group separators
local language = mw.getLanguage(lang)
if compact then
number = language:formatNum(tonumber(number), { noCommafy = 'y' }) -- caveat: can load localized resources for up to 20 languages
else
number = language:formatNum(tonumber(number)) -- caveat: can load localized resources for up to 20 languages
end
-- Postprocessing the precision
if prec > 0 then
local zero = language:formatNum(0)
number = number .. dot .. mw.ustring.rep(zero, prec)
elseif prec < 0 then
-- TODO: rounding of last decimal; here only truncate decimals in excess
number = mw.ustring.sub(number, 1, mw.ustring.len(number) + prec)
end
-- Append the localized base-10 exponent without grouping separators (there's no reliable way to detect a localized leading symbol 'E')
if exponent ~= '' then
number = number .. 'E' .. language:formatNum(tonumber(exponent),{noCommafy=true})
end
else -- not localized, ASCII only
-- Postprocessing the precision
if prec > 0 then
number = number .. dot .. mw.string.rep('0', prec)
elseif prec < 0 then
-- TODO: rounding of last decimal; here only truncate decimals in excess
number = mw.string.sub(number, 1, mw.string.len(number) + prec)
end
-- Append the base-10 exponent
if exponent ~= '' then
number = number .. 'E' .. exponent
end
end
-- Special cases for substitution of ASCII digits (missing support in Lua core libraries for some languages)
if digit[lang] then
for i, v in ipairs(digit[lang]) do
number = mw.ustring.gsub(number, tostring(i - 1), v)
end
end
return number
end
return p
gk53helm2rvitpaghxn4o1p7v4uhd77
فرما:Infobox settlement/Wikidata
10
15463
142803
140097
2026-06-25T13:53:16Z
آیات محراج
11062
/* */
142803
wikitext
text/x-wiki
<noinclude>{{Improve documentation|date=September 2017}}</noinclude><includeonly>{{Infobox settlement
<!-- See Template:Infobox settlement for additional fields and descriptions -->
| embed = {{{embed|}}}
| name = {{PAGENAMEBASE}}
| native_name = {{{native_name|{{#invoke:OfficialName | show | qid={{{qid|}}} }}}}}
| native_name_lang = <!-- ISO 639-2 code e.g. "fr" for French. If more than one, use {{lang}} instead -->
| settlement_type = {{#invoke:WikidataIB | getValue | rank=best |P31 |name=settlement_type |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |maxvals=1 |noicon={{{noicon|YES}}} |{{{settlement_type|}}} }}
| image_skyline = {{#invoke:InfoboxImage | InfoboxImage | image={{#if:{{#invoke:WikidataIB|getValue|rank=best|P2716|name=image|qid={{{qid|}}}|suppressfields={{{suppressfields|}}}|fetchwikidata=ALL|onlysourced=no|noicon=yes|maxvals=1|{{{image|}}}}}
|{{#invoke:WikidataIB|getValue|rank=best|P2716|name=image|qid={{{qid|}}}|suppressfields={{{suppressfields|}}}|fetchwikidata=ALL|onlysourced=no|noicon=yes|maxvals=1|{{{image|}}}}}
|{{#invoke:WikidataIB|getValue|rank=best|P18|name=image|qid={{{qid|}}}|suppressfields={{{suppressfields|}}}|fetchwikidata=ALL|onlysourced=no|noicon=yes|maxvals=1|{{{image|}}}}}
}}
| size={{{image_size|{{{imagesize|}}}}}}
| sizedefault=frameless
| upright={{{image_upright|1}}}
| alt={{{alt|}}}
| suppressplaceholder=yes }}
| image_alt =
| image_caption =
| image_flag = {{#if:{{{flag_image|}}}|{{{flag_image}}}|{{#property:P41}}}}
| flag_link = {{#property:P163}}
| flag_alt =
| image_seal = {{#invoke:WikidataIB | getValue | rank=best |P158 |name=seal |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |noicon={{{noicon|YES}}} |{{{image_seal|}}} }}
| seal_link = {{#property:P418}}
| seal_alt =
| image_shield = {{#invoke:WikidataIB | getValue | rank=best |P94 |name=sheild |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |noicon={{{noicon|YES}}} |{{{image_shield|}}} }}
| shield_link = {{#property:P237}}
| shield_alt =
| nickname ={{#if:{{{nickname|}}}|{{{nickname}}}|{{#property:p1449}}}}
| motto = {{{motto|{{#statements:P1546}}}}}
| anthem = {{#if:{{{anthem|}}}
| {{{anthem}}}
| {{#if:{{#statements:P85}}
| {{#statements:P85}}<br />{{#invoke:country anthem|play|qid={{{qid|}}}}}
}}
}}
| image_map = {{#invoke:WikidataIB | getValue | rank=best |P242 |name=locator_map |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |maxvals=1|noicon={{{noicon|YES}}} |{{{locator_map|}}} }}
| map_alt =
| map_caption = {{#if:{{#property:p242}} | {{#if:{{#Property:P625}}|{{Coord|nosave=1|display=inline,title|format=dms}}{{#ifeq:{{{refs|yes}}}|yes|{{wikidata|references|normal+|{{{qid|}}}|P625}} }}{{EditAtWikidata|pid=P625|qid={{{qid|}}} }} }} }}
| pushpin_map = {{#if:{{{pushpin_map|}}}|{{{pushpin_map}}}|{{#property:P17}}}}
| pushpin_label_position =
| pushpin_map_alt =
| pushpin_map_caption =
| coordinates = {{#if: {{#property:p242}} || {{#if:{{{coords|}}}{{{coordinates|}}} | {{if empty|{{{coordinates|}}}|{{{coords|}}}}} | {{#if:{{#Property:P625}} | {{Coord|nosave=1|display=inline,title|format=dms}}{{#ifeq:{{{refs|yes}}}|yes|{{wikidata|references|normal+|{{{qid|}}}|P625}} }}{{EditAtWikidata|pid=P625|qid={{{qid|}}} }} }} }} }}
| coor_pinpoint =
| coordinates_footnotes =
| subdivision_type = مُلٕک
| subdivision_name = {{#if:{{{country|}}}|{{{country}}}|{{#statements:P17}}}}
| subdivision_type1 = اِنتِظٲمی حِصَس مَنٛز
| subdivision_name1 = {{#invoke:Wikidades|getParentValues
| property = P131
| upto = 2
| sorting = -1
| rowformat = <span style="display:block; line-height:1.2;">• $1</span>
| separator =
}}
| subdivision_type2 = رازٕ دٲنؠ
| subdivision_name2 = {{#if:{{{suppress_capital|}}}||
{{#if:{{{capital|}}}|{{{capital}}}|{{#statements:P36}}}}
}}
| subdivision_type3 = برٛاعظم
| subdivision_name3 = {{#statements:P30}}
| subdivision_type4 = {{#if:{{{state|}}}|رِیاسَتھ}}{{#if:{{{label|}}}|{{#if:{{{state|}}}|<br />}}{{{label}}}}}
| subdivision_name4 = {{#if:{{{state|}}}|{{{state}}}}}{{#if:{{{data|}}}|{{#if:{{{state|}}}|<br />}}{{{data}}}}}
| subdivision_type5 = نٕسلہِ ہِنٛدؠ لوٗکھ
| subdivision_name5 = {{#invoke:WikidataIB | getValue |P172 |name=ethnicity |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata=ALL |noicon={{{noicon|Yes}}} |onlysourced ={{{onlysourced|No}}}|list={{{list|ubl}}} |collapse = 5 | {{{ethnicity|}}} }}
| subdivision_type6 = مَذہَب
| subdivision_name6 = {{#if: {{#invoke:WikidataIB | getValue | rank=best |P3075 |name=religion |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |noicon={{{noicon|YES}}} |{{{religion|}}}}}
|
{{#invoke:WikidataIB | getValue | rank=best |P3075 |name=religion |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |noicon={{{noicon|YES}}} |{{{religion|}}}}}
|
{{#invoke:WikidataIB | getValue | rank=best |P140 |name=religion |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |noicon={{{noicon|YES}}} |{{{religion|}}} }}}}
| parts_type = سَرکٲرؠ زَبان
| parts = {{#if:{{{official_language|}}}|{{{official_language}}}|{{#statements:P37}}}}
| blank1_name_sec1 = پۄنٛسہٕ
| blank1_info_sec1 = {{{currency|{{#statements:P38}}}}}
| blank2_name_sec1 = [[ا.ت.ا]]
| blank2_info_sec1 = {{#invoke:WikidataIB | getValue | rank=best |P1081 |name=hdi |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |qual=ALL |noicon={{{noicon|YES}}} |{{{hdi|}}} }}
| blank3_name_sec1 = [[جینی گۄنَک|جینی]]
| blank3_info_sec1 = {{#if:{{{Gini|{{{gdi|}}}}}}
| {{#switch:{{{Gini_change|}}}
|increase = {{increaseNegative}} |decrease = {{decreasePositive}} |steady = {{steady}} }}{{{Gini|{{{gdi}}}}}}{{{Gini_ref|}}}<br/>
{{nowrap|1={{#iferror:
{{#ifexpr:{{{Gini|{{{gdi}}}}}}>100
| {{error|Error: Gini value above 100}}
| {{#ifexpr:{{{Gini|{{{gdi}}}}}}>=60 |{{color|red|واریاہ زیٛادٕ نا اِصٲفی}}
| {{#ifexpr:{{{Gini|{{{gdi}}}}}}>=46 | {{color|darkred|واریاہ نا اِصٲفی}}
| {{#ifexpr:{{{Gini|{{{gdi}}}}}}>=30 | {{color|#707070|دَرمِیٲنی نا اِصٲفی}}
| {{#ifexpr:{{{Gini|{{{gdi}}}}}}>=0 | {{color|forestgreen|کم نا اِصٲفی}}
| {{error|Error:Gini value below 0}}
}}
}}
}}
}}
}}
| {{error|Error: Invalid Gini value}}{{#ifeq: {{NAMESPACE}} | {{ns:0}} | [[Category:Country articles requiring maintenance]] }}
}}
}}
{{#if:{{{Gini_rank|}}}| ([[List of countries by income equality|{{{Gini_rank}}}]])}}
| {{#if: {{#invoke:WikidataIB | getValue | rank=best |P1125 |qid={{{qid|}}} |maxvals=1 |fetchwikidata={{{fetchwikidata|ALL}}} }}
| {{#invoke:WikidataIB | getValue | rank=best |P1125 |name=gdi |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |qual=ALL |noicon={{{noicon|YES}}} |{{{gdi|}}} }}<br/>
{{nowrap|1={{#iferror:
{{#ifexpr: {{formatnum: {{#invoke:WikidataIB | getValue | rank=best |P1125 |qid={{{qid|}}} |maxvals=1 |refs=no |osd=no |showunits=false |fetchwikidata={{{fetchwikidata|ALL}}} }} | R}} > 100
| {{error|Error: Gini value above 100}}
| {{#ifexpr: {{formatnum: {{#invoke:WikidataIB | getValue | rank=best |P1125 |qid={{{qid|}}} |maxvals=1 |refs=no |osd=no |showunits=false |fetchwikidata={{{fetchwikidata|ALL}}} }} | R}} >= 60 |{{color|red|واریاہ زیٛادٕ نا اِصٲفی}}
| {{#ifexpr: {{formatnum: {{#invoke:WikidataIB | getValue | rank=best |P1125 |qid={{{qid|}}} |maxvals=1 |refs=no |osd=no |showunits=false |fetchwikidata={{{fetchwikidata|ALL}}} }} | R}} >= 46 | {{color|darkred|واریاہ نا اِصٲفی}}
| {{#ifexpr: {{formatnum: {{#invoke:WikidataIB | getValue | rank=best |P1125 |qid={{{qid|}}} |maxvals=1 |refs=no |osd=no |showunits=false |fetchwikidata={{{fetchwikidata|ALL}}} }} | R}} >= 30 | {{color|#707070|دَرمِیٲنی نا اِصٲفی}}
| {{#ifexpr: {{formatnum: {{#invoke:WikidataIB | getValue | rank=best |P1125 |qid={{{qid|}}} |maxvals=1 |refs=no |osd=no |showunits=false |fetchwikidata={{{fetchwikidata|ALL}}} }} | R}} >= 0 | {{color|forestgreen|کم نا اِصٲفی}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
| blank2_name_sec2 = جی ڈی پی (نمونیَل)
| blank2_info_sec2 = {{wikidata|property|best|P2131}}
| established_title = بُنیاد
| established_date = {{{established_date|}}}
| founder = {{{founder|{{#statements:P112}} }}}
| seat_type =
| seat =
| government_footnotes =
| government_type = {{{government_type|{{#statements:P122}}}}}
| leader_party = {{{leader_party|}}}
| leader_title = حُکُمران
| leader_name = {{#if:{{{leader_name|}}}
| {{{leader_name}}}
|
{{#if:{{#statements:P6}} | {{#if:{{#statements:P35}}
| '''{{#statements:P1906}}''': {{#statements:P35}}<br/>'''{{#statements:P1313}}''': {{#statements:P6}}
| '''{{#statements:P1313}}''': {{#statements:P6}}
}}
| {{#if:{{#statements:P35}}
| '''{{#statements:P1906}}''': {{#statements:P35}}
}}
}}
}}
| unit_pref = Metric
<!-- ALL fields with measurements have automatic unit conversion -->
<!-- for references: use <ref> tags -->
| area_footnotes = {{#if: {{{area_km2_ref|}}} | {{{area_km2_ref}}} | {{wikidata|reference|P2046}} }}
| area_urban_footnotes = <!-- <ref> </ref> -->
| area_rural_footnotes = <!-- <ref> </ref> -->
| area_metro_footnotes = <!-- <ref> </ref> -->
| area_magnitude = <!-- <ref> </ref> -->
| area_note =
| area_water_percent = {{#if:{{{area_water_percent|}}}|'''{{{area_water_percent}}}'''|{{#if:{{wikidata|property|raw|P2927}}|'''{{formatnum: {{wikidata|property|raw|P2927}} | R}}'''}}}}
| area_rank =
| area_blank1_title =
| area_blank2_title =
| area_total_km2 = {{#if: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q16868672 |fwd=ALL |osd=no |noicon=true | showunits=false | refs=no }}
| {{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q16868672 |fwd=ALL |osd=no |noicon=true | showunits=false | maxvals=1 | refs=no }} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}}
| {{#if: {{#invoke:WikidataIB | getValue | rank=best |qid={{{qid|}}} | P2046 |fwd=ALL |osd=no |noicon=true | showunits=false | refs=no }}
| {{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{#invoke:WikidataIB | getValue | rank=best |qid={{{qid|}}} | P2046 |fwd=ALL |osd=no |noicon=true | showunits=false | maxvals=1 | refs=no }} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}}
}}
}}
| area_land_km2 = {{#if: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q11081619 |fwd=ALL |osd=no |noicon=true | showunits=false | refs=no }}
| {{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q11081619 |fwd=ALL |osd=no |noicon=true | showunits=false | maxvals=1 | refs=no }} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}}
| {{#if: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q205895 |fwd=ALL |osd=no |noicon=true | showunits=false | refs=no }}
| {{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q205895 |fwd=ALL |osd=no |noicon=true | showunits=false | maxvals=1 | refs=no }} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}}
}}
}}
| area_water_km2 = {{#if:{{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q15324 |fwd=ALL |osd=no |noicon=true | showunits=false | refs=no }}
|{{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q15324 |fwd=ALL |osd=no |noicon=true | showunits=false | maxvals=1 | refs=no }} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}}
|{{#if:{{both|{{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q16868672 |fwd=ALL |osd=no |noicon=true | showunits=false | refs=no }}|{{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q11081619 |fwd=ALL |osd=no |noicon=true | showunits=false | refs=no }}}}
|{{#expr: ( {{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q16868672 |fwd=ALL |osd=no |noicon=true | showunits=false | maxvals=1 | refs=no }} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}} - {{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q11081619 |fwd=ALL |osd=no |noicon=true | showunits=false | maxvals=1 | refs=no }} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}} ) round 2}}
|{{#if:{{both|{{{area_total_km2|}}}|{{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q11081619 |fwd=ALL |osd=no |noicon=true | showunits=false | refs=no }}}}
|{{#expr: ( {{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{{area_total_km2|}}} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}} - {{#invoke:String|match|s={{#invoke:String|replace|source={{formatnum: {{#invoke:WikidataIB | getValueByQual | rank=best |qid={{{qid|}}} | P2046 | qualID=P518 | qvalue=Q11081619 |fwd=ALL |osd=no |noicon=true | showunits=false | maxvals=1 | refs=no }} | R}}|pattern=٬|replace=|plain=true}} |pattern=%d+%.?%d* |nomatch=0 |ignore_errors=true}} ) round 2}}
}}
}}
}}
| area_urban_km2 =
| area_rural_km2 =
| area_metro_km2 =
| area_blank1_km2 =
| area_blank2_km2 =
<!-- hectares -->
| area_total_ha =
| area_land_ha =
| area_water_ha =
| area_urban_ha =
| area_rural_ha =
| area_metro_ha =
| area_blank1_ha =
| area_blank2_ha =
| length_km =
| width_km =
| dimensions_footnotes =
| elevation_footnotes =
| elevation_m =
| population_footnotes = {{#if: {{wikidata|property|P1082}} | {{wikidata|references|best|P1082}} }}
| population_total = {{wikidata|property|best|P1082}}
| population_as_of = {{#if: {{wikidata|property|P1082}} | {{wikidata|qualifier|best|P1082|P585}} }}
| population_density_km2 = auto
| population_demonym =
| population_note =
| timezone1 = {{{time_zone|{{#statements:P421}}}}}
| utc_offset1 =
| timezone1_DST =
| utc_offset1_DST =
| blank3_name_sec2 = موبایِل کوڈ
| blank3_info_sec2 = {{#property:P474}}
| blank4_name_sec2 = گٲڑؠ چلاونُک طرف
| blank4_info_sec2 = {{#property:P1622}}
| postal_code_type = پِن
| postal_code = {{{postal_code|}}}
| area_code_type =
| area_code = {{#property:P473}}
| registration_plate = {{{registration_plate|{{#statements:P395}}}}}
| iso_code =
| module2 = {{{module2|}}}
| website = {{#if: {{#property:P856}} | {{URL|{{#property:P856}}}} }}
| footnotes =
}}</includeonly><noinclude>
Try it on {{Wikidata test|San Francisco|{{PAGENAME}}}}, {{Wikidata test|Vladivostok|{{PAGENAME}}}}, {{Wikidata test|Sapporo|{{PAGENAME}}}}
</noinclude><noinclude>
{{Documentation}}
<!--Please add this template's categories to the /doc subpage, not here - thanks!-->
</noinclude>
lolcttms43qvlrrl54m8jdga1ozh50x
کیف رضا خان
0
18316
142912
117507
2026-06-26T06:51:27Z
InternetArchiveBot
8158
Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5
142912
wikitext
text/x-wiki
{{مولوٗماتھ}}
'''محمد کیف رضا خان''' (اُردوٗ: محمد کیف رضا خانہ {{Lang-hi|मुहम्मद कैफ रज़ा ख़ान}}: کیف راجہ خان) (پیدٲیش 25 دَسَمبَر 2001) چھُ اَکھ ہندوستٲنؠ اِسلٲمی سکالر کارکن تہٕ علما چھ اہل سنت وال جماعت موومنٹس سٟتؠ تعلق تھاوان۔ خان چھُ [[احمد رضا خان بریلوی|احمد رضا خان]] بریلوی سنٛد نیٚچو۔ سُہ چھُ درگاہ وۄستاد ای زمان ٹرسٹک صَدٕر۔<ref name="Hindustan-Epaper">{{Cite news|title=अजमेर में पढ़ेंगे आला हजरत का लिखा सलाम|url=https://epaper.livehindustan.com/Home/MShareArticle?OrgId=1519a154f20&imageview=0|accessdate=15 January 2023|publisher=[[Hindustan]]|date=15 January 2023|archivedate=26 January 2023|archiveurl=https://web.archive.org/web/20230126072330/https://epaper.livehindustan.com/Home/MShareArticle?OrgId=1519a154f20&imageview=0}}</ref><ref>{{ویب حَوالہٕ|title=Official Website of Muhammad Kaif Raza Khan Qadri|url=http://ustadezaman.com/biography.html|access-date=2023-07-20|archive-date=2023-01-26|archive-url=https://web.archive.org/web/20230126072337/http://ustadezaman.com/biography.html|url-status=dead}}</ref>
رضا خان چھ علاء حضرت تہٕ تمہ سند لۄکٹ بوے حسن رضا خان ، یس بریلوی تحریکک بانی اوس ، سٗند پوٚٹھ۔<ref>{{ویب حَوالہٕ|date=30 May 2016|title='A mother's tears' bring rival Sunni sects together|url=http://indianexpress.com/article/india/india-news-india/muslim-youth-arrest-terrorism-indian-muslims-a-mothers-tears-bring-rival-sunni-sects-together-2825143/|access-date=23 August 2017|publisher=Indian Express}}</ref> أمس چھ پشتونن ہنٛدؠ باریچ قبیلہٕ۔<ref>{{ویب حَوالہٕ|title=Ancestral Tree of Alahazrat Imam Ahmad Rida Khan|url=http://www.alahazrat.net/islam/ancestral-tree-of-alahazrat-imam-ahmad-rida-khan.php|access-date=23 August 2017|publisher=Ala Hazrat|archive-date=13 July 2015|archive-url=https://web.archive.org/web/20150713234516/http://www.alahazrat.net/islam/ancestral-tree-of-alahazrat-imam-ahmad-rida-khan.php|url-status=dead}}</ref> یہِ چھ مولانا توقیر رضا خان سنٛد نیچو۔<ref>{{ویب حَوالہٕ|last=Team|first=Amarujala|date=2023-01-31|title=Feud in the ala hazrat family after ajmer case|url=https://www.amarujala.com/uttar-pradesh/bareilly/feud-in-the-ala-hazrat-family-after-ajmer-case-2023-02-01|access-date=2023-02-01|website=amarujala|language=hindi}}</ref><ref>{{ویب حَوالہٕ|last=Team|first=Hindustan|date=2023-02-01|title=सोशल मीडिया पर तेज हुई लड़ाई|url=https://epaper.livehindustan.com/Home/MShareArticle?OrgId=1231cb1f54&imageview=0|access-date=2023-02-01|website=livehindustan|language=hindi|archive-date=2023-02-01|archive-url=https://web.archive.org/web/20230201121015/https://epaper.livehindustan.com/Home/MShareArticle?OrgId=1231cb1f54&imageview=0|url-status=dead}}</ref>
== سرگرمی ==
18 اپریل 2023 کوٚر مولانا کیف رضاہن اتحاد ملتان کونٛسل (IMC) سربراہ توقیر رضا خان سٕنٛد طرفہٕ اعلان کرنہٕ آمتس احتجاجس حمایت کرنک اعلان۔ مولانا کیفن کٔر عوامس احتجاجس مَنٛز شرکت کرنٕچ اپیل۔
19 اپریل 2023 اتحاد - ملات کونسل (آئی ایم سی) سربراہ توقیر رضا خان تہٕ تہنٛدؠن حمایتین آو نہٕ احتجاج کرنہٕ خٲطرٕ اسلامیا مٲدان بریلی مَنٛز دھرنا دنک اجازت دنہٕ۔ مولانا کیف رضاہن ووٚن احتجاجٕچ اجازت دنہٕ نش انکار کرٕنہ آمریت ہٕنٛز علامت۔ تمہ کٕر رِیاسَتھ [[وۄتُر پرَٛدیش|اتر پردیش]] ، [[ہِندوستان|ہندوستانس]] مَنٛز امن و امانٕچ بگڑن واجیٚنؠ صورت حال ، فرضی مُقابلہٕ تہٕ پولیس حراستس مَنٛز قَتٕل ہوین مسٲیلن پؠٹھ مجوزہ احتجاج باپتھ توقیر رضا خانَس حمایت۔<ref>{{ویب حَوالہٕ|last=Ujala|first=Amar|date=2023-04-20|title=Maulana Tauqeer Raza Got Angry On Being Put Under House Arrest And Maulana Kaif Said Cm Yogi A Dictator|url=https://www.amarujala.com/uttar-pradesh/bareilly/maulana-tauqeer-raza-got-angry-on-being-put-under-house-arrest-told-cm-yogi-a-dictator-2023-04-20|access-date=2023-04-20|website=amarujala.com|language=hindi}}</ref>
== حَوالہٕ ==
{{حَوالہٕ}}
[[زٲژ:زِنٛدٕ لوٗکھ]]
[[زٲژ:2001 پٲدٲیِش]]
[[زٲژ:ہِندوستٲنؠ مُسَلمان]]
[[زٲژ:گَشتہٕ کَرنہٕ وَرٲے تَرجَمہٕ صَفہٕ]]
a2t5a6duv0e6kbamsg7pc95avk8avgm
کاربَن ڈایی آکسایڈ
0
18570
142888
142417
2026-06-25T18:04:40Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142888
wikitext
text/x-wiki
{{infobox chembox|color=Navajowhite}}
کاربن ڈایی آکسایڈ چھُ اَکھ کیمیایی مرکب یَتھ مَنٛز کیمیایی فارمولا CO2 چھُ۔ یہٕ چھُ مالیکیولزن پؠٹھ مشتمل آسان زِ پرتھ کُنہِ چھُ اَکھ کاربن ایٹم دۄن آکسیجن ایٹمن سٟتؠ ہم آہنگ طورس پؠٹھ ڈبل جُڑِتھ۔ یہٕ چھُ کمرہ کہِ درجہ حرارتس پؠٹھ گیس کہِ حالتس مَنٛز لبنہٕ یوان، تہٕ کاربن سایکلس مَنٛز دستیاب کاربن کہِ ذریعہٕ کہِ طورس پؠٹھ چھُ ماحولیٲتی CO2 زمینس پؠٹھ زندگی ہند بنیٲدی کاربن ذریعہٕ۔ ہواہس مَنٛز چھُ کاربن ڈایی آکسایڈ نظر ینہٕ واجنہِ گاشس مَنٛز شفاف آسان مگر انفراریڈ تابکاری چھُ جذب کران، یوس گرین ہاؤس گیس کہِ طورس پؠٹھ کٲم چھُ کران۔ کاربن ڈایی آکسایڈ چھُ آبس مَنٛز گھلنشیل تہٕ یہٕ چھُ زمینی آبہٕ، جیلن، شینچ ٹوپیہٕ تہٕ سمندری آبس مَنٛز لبنہٕ یوان۔
== حَوالہٕ ==
{{حَوالہٕ وَرٲے}}
5p9cvp6ygi3az2nga6vjy9tyqhm8520
فرما:خبرن مَنٛز
10
18632
142817
139485
2026-06-25T15:32:41Z
آیات محراج
11062
/* */
142817
wikitext
text/x-wiki
{{Main page image/ITN
| image = Alan Greenspan color photo portrait.jpg<!--NOTE: Do not use an unprotected Commons file. Our cascading protection will not apply. Either upload a local copy or list it at WP:CMP and wait for the bot to protect it at Commons. See WP:ITN/A for full instructions.-->
| width =
| caption = ایٚلن گرٛیٖن سِپیس
| title =
| alt =
| link =
| border = no <!-- only set if image has a light background -->
| caption align = left
}}
*<!--Jun 24--> '''[[2026 وینَزوٗیِلا بُنیُل|زٕ بُنیِلؠ]]''' آیہِ [[وینَزوٗیِلا|وینَزوٗیِلاہس]] مَنٛز بُنیِلؠ ییٚمہِ سٟتؠ 160 کھۄتہٕ زیٛادٕ لوٗکھ موٗدؠ۔
*<!--Jun 22--> سٲبقہٕ فیڈرل ریزرو کے چییَرمین '''[[ایٚلن گرٛیٖن سِپیس]]''' ''(تَصویٖر مَنٛز)'' موٗد {{nowrap|100 وُہُر وٲنٛسہِ مَنٛز}}۔
*<!--Jun 22--> [[کِیٔر سٹارمر]] '''[[2026 لیبر پارٹی ہُنٛد قیادتُک بحران|اِستعیفہٕ دِنُک اِرادُک اعلان]] [[بَرطانہُک ؤزیٖرِ اعظم]]۔
*<!--May 26--> [[پوپ لیٛو 14]] کٔر پننٕؠ گۄڈٕنِچ [[گِرجاگرُک بخشنامہٕ]] شایع، '''[[میگنیفیکا ہیٛومینیٹاس]]''', یُس پَروا چھُ ظٲہِر کران [[بَنٲومٕژ ذَہٲنِیَتھ]] باپَتھ۔
*<!-- May 07 --> '''[[ایم وی ہونٛڈِیَس ہَنتا وایرس|اَکھ ہَنتا وایرسُک پھۄہلاو]]''' کرٛوٗز جہازس پؠٹھ ایم وی، یمہِ سٟتؠ سفری مجبوٗرن جہازس پؠٹھٕے بَنٛد تھاونہٕ آیہِ۔
*<!-- May 06 --> امریکی میٖڈیا ہُک مٲلِکھ تہٕ اِنسان دوس '''[[ٹیٚڈ ٹرنر]]''' موٗد {{nowrap|87 وُہُر}}۔
{{In the news/footer
|nocurrenteventslink = {{{nocurrenteventslink|}}}
|currentevents =
<!--Post ongoing items in alphabetical order-->
*<!--Mar 26 2025--> [[غزہ جنٛگ]]
*<!--Mar 09 2022--> [[یوکرینَس پؠٹھ روٗسی حملہٕ]]
*<!--14 Apr 2023--> [[سوڈان خانہٕ جنٛگی (2023-ازکال)|سوڈان خانہٕ جنٛگی]]
|recentdeaths =
<!--New items go on top, remove the last one when posting, 6 items maximum, consider {{nowrap|[[Name]]}} or non-breaking spaces ( ) for names with middle names or initials-->
*[[اوزی اوسبورن]]
*[[شاہِد بڈگٲمی]]
}}<noinclude>
{{documentation}}
</noinclude>
e0aiwpmguw17gl4ukpq99pew2hforrv
142818
142817
2026-06-25T15:33:13Z
آیات محراج
11062
/* */
142818
wikitext
text/x-wiki
{{Main page image/ITN
| image = Alan Greenspan color photo portrait.jpg<!--NOTE: Do not use an unprotected Commons file. Our cascading protection will not apply. Either upload a local copy or list it at WP:CMP and wait for the bot to protect it at Commons. See WP:ITN/A for full instructions.-->
| width =
| caption = ایٚلن گرٛیٖن سِپیس
| title =
| alt =
| link =
| border = no <!-- only set if image has a light background -->
| caption align = left
}}
*<!--Jun 24--> '''[[2026 وینَزوٗیِلا بُنیُل|زٕ بُنیِلؠ]]''' آیہِ [[وینَزوٗیِلا|وینَزوٗیِلاہس]] مَنٛز بُنیِلؠ ییٚمہِ سٟتؠ 160 کھۄتہٕ زیٛادٕ لوٗکھ موٗدؠ۔
*<!--Jun 22--> سٲبقہٕ فیڈرل ریزرو کے چییَرمین '''[[ایٚلن گرٛیٖن سِپیس]]''' ''(تَصویٖر مَنٛز)'' موٗد {{nowrap|100 وُہُر وٲنٛسہِ مَنٛز}}۔
*<!--Jun 22--> [[کِیٔر سٹارمر]] '''[[2026 لیبر پارٹی ہُنٛد قیادتُک بحران|اِستعیفہٕ دِنُک اِرادُک اعلان]] بطورِ [[بَرطانہُک ؤزیٖرِ اعظم]]۔
*<!--May 26--> [[پوپ لیٛو 14]] کٔر پننٕؠ گۄڈٕنِچ [[گِرجاگرُک بخشنامہٕ]] شایع، '''[[میگنیفیکا ہیٛومینیٹاس]]''', یُس پَروا چھُ ظٲہِر کران [[بَنٲومٕژ ذَہٲنِیَتھ]] باپَتھ۔
*<!-- May 07 --> '''[[ایم وی ہونٛڈِیَس ہَنتا وایرس|اَکھ ہَنتا وایرسُک پھۄہلاو]]''' کرٛوٗز جہازس پؠٹھ ایم وی، یمہِ سٟتؠ سفری مجبوٗرن جہازس پؠٹھٕے بَنٛد تھاونہٕ آیہِ۔
*<!-- May 06 --> امریکی میٖڈیا ہُک مٲلِکھ تہٕ اِنسان دوس '''[[ٹیٚڈ ٹرنر]]''' موٗد {{nowrap|87 وُہُر}}۔
{{In the news/footer
|nocurrenteventslink = {{{nocurrenteventslink|}}}
|currentevents =
<!--Post ongoing items in alphabetical order-->
*<!--Mar 26 2025--> [[غزہ جنٛگ]]
*<!--Mar 09 2022--> [[یوکرینَس پؠٹھ روٗسی حملہٕ]]
*<!--14 Apr 2023--> [[سوڈان خانہٕ جنٛگی (2023-ازکال)|سوڈان خانہٕ جنٛگی]]
|recentdeaths =
<!--New items go on top, remove the last one when posting, 6 items maximum, consider {{nowrap|[[Name]]}} or non-breaking spaces ( ) for names with middle names or initials-->
*[[اوزی اوسبورن]]
*[[شاہِد بڈگٲمی]]
}}<noinclude>
{{documentation}}
</noinclude>
jimjosqf3perta1vhumsxqzobwo4m6b
142819
142818
2026-06-25T15:33:39Z
آیات محراج
11062
/* */
142819
wikitext
text/x-wiki
{{Main page image/ITN
| image = Alan Greenspan color photo portrait.jpg<!--NOTE: Do not use an unprotected Commons file. Our cascading protection will not apply. Either upload a local copy or list it at WP:CMP and wait for the bot to protect it at Commons. See WP:ITN/A for full instructions.-->
| width =
| caption = ایٚلن گرٛیٖن سِپیس
| title =
| alt =
| link =
| border = no <!-- only set if image has a light background -->
| caption align = left
}}
*<!--Jun 24--> '''[[2026 وینَزوٗیِلا بُنیُل|زٕ بُنیِلؠ]]''' آیہِ [[وینَزوٗیِلا|وینَزوٗیِلاہس]] مَنٛز بُنیِلؠ ییٚمہِ سٟتؠ 160 کھۄتہٕ زیٛادٕ لوٗکھ موٗدؠ۔
*<!--Jun 22--> سٲبقہٕ فیڈرل ریزرو کے چییَرمین '''[[ایٚلن گرٛیٖن سِپیس]]''' ''(تَصویٖر مَنٛز)'' موٗد {{nowrap|100 وُہُر وٲنٛسہِ مَنٛز}}۔
*<!--Jun 22--> [[کِیٔر سٹارمر]] '''[[2026 لیبر پارٹی ہُنٛد قیادتُک بحران|اِستعیفہٕ دِنُک اِرادُک اعلان]] بطورِ [[بَرطانیہُک ؤزیٖرِ اعظم]]۔
*<!--May 26--> [[پوپ لیٛو 14]] کٔر پننٕؠ گۄڈٕنِچ [[گِرجاگرُک بخشنامہٕ]] شایع، '''[[میگنیفیکا ہیٛومینیٹاس]]''', یُس پَروا چھُ ظٲہِر کران [[بَنٲومٕژ ذَہٲنِیَتھ]] باپَتھ۔
*<!-- May 07 --> '''[[ایم وی ہونٛڈِیَس ہَنتا وایرس|اَکھ ہَنتا وایرسُک پھۄہلاو]]''' کرٛوٗز جہازس پؠٹھ ایم وی، یمہِ سٟتؠ سفری مجبوٗرن جہازس پؠٹھٕے بَنٛد تھاونہٕ آیہِ۔
*<!-- May 06 --> امریکی میٖڈیا ہُک مٲلِکھ تہٕ اِنسان دوس '''[[ٹیٚڈ ٹرنر]]''' موٗد {{nowrap|87 وُہُر}}۔
{{In the news/footer
|nocurrenteventslink = {{{nocurrenteventslink|}}}
|currentevents =
<!--Post ongoing items in alphabetical order-->
*<!--Mar 26 2025--> [[غزہ جنٛگ]]
*<!--Mar 09 2022--> [[یوکرینَس پؠٹھ روٗسی حملہٕ]]
*<!--14 Apr 2023--> [[سوڈان خانہٕ جنٛگی (2023-ازکال)|سوڈان خانہٕ جنٛگی]]
|recentdeaths =
<!--New items go on top, remove the last one when posting, 6 items maximum, consider {{nowrap|[[Name]]}} or non-breaking spaces ( ) for names with middle names or initials-->
*[[اوزی اوسبورن]]
*[[شاہِد بڈگٲمی]]
}}<noinclude>
{{documentation}}
</noinclude>
2vdco7gluoog92jzc0rstibv2jac8dy
142820
142819
2026-06-25T15:33:51Z
آیات محراج
11062
/* */
142820
wikitext
text/x-wiki
{{Main page image/ITN
| image = Alan Greenspan color photo portrait.jpg<!--NOTE: Do not use an unprotected Commons file. Our cascading protection will not apply. Either upload a local copy or list it at WP:CMP and wait for the bot to protect it at Commons. See WP:ITN/A for full instructions.-->
| width =
| caption = ایٚلن گرٛیٖن سِپیس
| title =
| alt =
| link =
| border = no <!-- only set if image has a light background -->
| caption align = left
}}
*<!--Jun 24--> '''[[2026 وینَزوٗیِلا بُنیُل|زٕ بُنیِلؠ]]''' آیہِ [[وینَزوٗیِلا|وینَزوٗیِلاہس]] مَنٛز بُنیِلؠ ییٚمہِ سٟتؠ 160 کھۄتہٕ زیٛادٕ لوٗکھ موٗدؠ۔
*<!--Jun 22--> سٲبقہٕ فیڈرل ریزرو کے چییَرمین '''[[ایٚلن گرٛیٖن سِپیس]]''' ''(تَصویٖر مَنٛز)'' موٗد {{nowrap|100 وُہُر وٲنٛسہِ مَنٛز}}۔
*<!--Jun 22--> [[کِیٔر سٹارمر]] '''[[2026 لیبر پارٹی ہُنٛد قیادتُک بحران|اِستعیفہٕ دِنُک اِرادُک اعلان]] بطورِ [[برطانیہُک ؤزیٖرِ اعظم]]۔
*<!--May 26--> [[پوپ لیٛو 14]] کٔر پننٕؠ گۄڈٕنِچ [[گِرجاگرُک بخشنامہٕ]] شایع، '''[[میگنیفیکا ہیٛومینیٹاس]]''', یُس پَروا چھُ ظٲہِر کران [[بَنٲومٕژ ذَہٲنِیَتھ]] باپَتھ۔
*<!-- May 07 --> '''[[ایم وی ہونٛڈِیَس ہَنتا وایرس|اَکھ ہَنتا وایرسُک پھۄہلاو]]''' کرٛوٗز جہازس پؠٹھ ایم وی، یمہِ سٟتؠ سفری مجبوٗرن جہازس پؠٹھٕے بَنٛد تھاونہٕ آیہِ۔
*<!-- May 06 --> امریکی میٖڈیا ہُک مٲلِکھ تہٕ اِنسان دوس '''[[ٹیٚڈ ٹرنر]]''' موٗد {{nowrap|87 وُہُر}}۔
{{In the news/footer
|nocurrenteventslink = {{{nocurrenteventslink|}}}
|currentevents =
<!--Post ongoing items in alphabetical order-->
*<!--Mar 26 2025--> [[غزہ جنٛگ]]
*<!--Mar 09 2022--> [[یوکرینَس پؠٹھ روٗسی حملہٕ]]
*<!--14 Apr 2023--> [[سوڈان خانہٕ جنٛگی (2023-ازکال)|سوڈان خانہٕ جنٛگی]]
|recentdeaths =
<!--New items go on top, remove the last one when posting, 6 items maximum, consider {{nowrap|[[Name]]}} or non-breaking spaces ( ) for names with middle names or initials-->
*[[اوزی اوسبورن]]
*[[شاہِد بڈگٲمی]]
}}<noinclude>
{{documentation}}
</noinclude>
0lpl1klmee5yl8kkebetbt0hrwkdkxh
142821
142820
2026-06-25T15:38:32Z
آیات محراج
11062
/* */
142821
wikitext
text/x-wiki
{{Main page image/ITN
| image = Alan Greenspan color photo portrait.jpg<!--NOTE: Do not use an unprotected Commons file. Our cascading protection will not apply. Either upload a local copy or list it at WP:CMP and wait for the bot to protect it at Commons. See WP:ITN/A for full instructions.-->
| width =
| caption = ایٚلن گرٛیٖنسِپین
| title =
| alt =
| link =
| border = no <!-- only set if image has a light background -->
| caption align = left
}}
*<!--Jun 24--> '''[[2026 وینَزوٗیِلا بُنیُل|زٕ بُنیِلؠ]]''' آیہِ [[وینَزوٗیِلا|وینَزوٗیِلاہس]] مَنٛز بُنیِلؠ ییٚمہِ سٟتؠ 160 کھۄتہٕ زیٛادٕ لوٗکھ موٗدؠ۔
*<!--Jun 22--> سٲبقہٕ فیڈرل ریزرو کے چییَرمین '''[[ایٚلن گرٛیٖنسِپین]]''' ''(تَصویٖر مَنٛز)'' موٗد {{nowrap|100 وُہُر وٲنٛسہِ مَنٛز}}۔
*<!--Jun 22--> [[کِیٔر سٹارمر]] '''[[2026 لیبر پارٹی ہُنٛد قیادتُک بحران|اِستعیفہٕ دِنُک اِرادُک اعلان]] بطورِ [[برطانیہُک ؤزیٖرِ اعظم]]۔
*<!--May 26--> [[پوپ لیٛو 14]] کٔر پننٕؠ گۄڈٕنِچ [[گِرجاگرُک بخشنامہٕ]] شایع، '''[[میگنیفیکا ہیٛومینیٹاس]]''', یُس پَروا چھُ ظٲہِر کران [[بَنٲومٕژ ذَہٲنِیَتھ]] باپَتھ۔
*<!-- May 07 --> '''[[ایم وی ہونٛڈِیَس ہَنتا وایرس|اَکھ ہَنتا وایرسُک پھۄہلاو]]''' کرٛوٗز جہازس پؠٹھ ایم وی، یمہِ سٟتؠ سفری مجبوٗرن جہازس پؠٹھٕے بَنٛد تھاونہٕ آیہِ۔
*<!-- May 06 --> امریکی میٖڈیا ہُک مٲلِکھ تہٕ اِنسان دوس '''[[ٹیٚڈ ٹرنر]]''' موٗد {{nowrap|87 وُہُر}}۔
{{In the news/footer
|nocurrenteventslink = {{{nocurrenteventslink|}}}
|currentevents =
<!--Post ongoing items in alphabetical order-->
*<!--Mar 26 2025--> [[غزہ جنٛگ]]
*<!--Mar 09 2022--> [[یوکرینَس پؠٹھ روٗسی حملہٕ]]
*<!--14 Apr 2023--> [[سوڈان خانہٕ جنٛگی (2023-ازکال)|سوڈان خانہٕ جنٛگی]]
|recentdeaths =
<!--New items go on top, remove the last one when posting, 6 items maximum, consider {{nowrap|[[Name]]}} or non-breaking spaces ( ) for names with middle names or initials-->
*[[اوزی اوسبورن]]
*[[شاہِد بڈگٲمی]]
}}<noinclude>
{{documentation}}
</noinclude>
67wz4mr7rbh5gj55nrg2znasubmtkd0
142822
142821
2026-06-25T15:38:59Z
آیات محراج
11062
/* */
142822
wikitext
text/x-wiki
{{Main page image/ITN
| image = Alan Greenspan color photo portrait.jpg<!--NOTE: Do not use an unprotected Commons file. Our cascading protection will not apply. Either upload a local copy or list it at WP:CMP and wait for the bot to protect it at Commons. See WP:ITN/A for full instructions.-->
| width =
| caption = ایٚلن گرٛیٖنسِپین
| title =
| alt =
| link =
| border = no <!-- only set if image has a light background -->
| caption align = left
}}
*<!--Jun 24--> '''[[2026 وینَزوٗیِلا بُنیُل|زٕ بُنیِلؠ]]''' آیہِ [[وینَزوٗیِلا|وینَزوٗیِلاہس]] مَنٛز بُنیِلؠ ییٚمہِ سٟتؠ 160 کھۄتہٕ زیٛادٕ لوٗکھ موٗدؠ۔
*<!--Jun 22--> سٲبقہٕ فیڈرل ریزروُک چییَرمین '''[[ایٚلن گرٛیٖنسِپین]]''' ''(تَصویٖر مَنٛز)'' موٗد {{nowrap|100 وُہُر وٲنٛسہِ مَنٛز}}۔
*<!--Jun 22--> [[کِیٔر سٹارمر]] '''[[2026 لیبر پارٹی ہُنٛد قیادتُک بحران|اِستعیفہٕ دِنُک اِرادُک اعلان]] بطورِ [[برطانیہُک ؤزیٖرِ اعظم]]۔
*<!--May 26--> [[پوپ لیٛو 14]] کٔر پننٕؠ گۄڈٕنِچ [[گِرجاگرُک بخشنامہٕ]] شایع، '''[[میگنیفیکا ہیٛومینیٹاس]]''', یُس پَروا چھُ ظٲہِر کران [[بَنٲومٕژ ذَہٲنِیَتھ]] باپَتھ۔
*<!-- May 07 --> '''[[ایم وی ہونٛڈِیَس ہَنتا وایرس|اَکھ ہَنتا وایرسُک پھۄہلاو]]''' کرٛوٗز جہازس پؠٹھ ایم وی، یمہِ سٟتؠ سفری مجبوٗرن جہازس پؠٹھٕے بَنٛد تھاونہٕ آیہِ۔
*<!-- May 06 --> امریکی میٖڈیا ہُک مٲلِکھ تہٕ اِنسان دوس '''[[ٹیٚڈ ٹرنر]]''' موٗد {{nowrap|87 وُہُر}}۔
{{In the news/footer
|nocurrenteventslink = {{{nocurrenteventslink|}}}
|currentevents =
<!--Post ongoing items in alphabetical order-->
*<!--Mar 26 2025--> [[غزہ جنٛگ]]
*<!--Mar 09 2022--> [[یوکرینَس پؠٹھ روٗسی حملہٕ]]
*<!--14 Apr 2023--> [[سوڈان خانہٕ جنٛگی (2023-ازکال)|سوڈان خانہٕ جنٛگی]]
|recentdeaths =
<!--New items go on top, remove the last one when posting, 6 items maximum, consider {{nowrap|[[Name]]}} or non-breaking spaces ( ) for names with middle names or initials-->
*[[اوزی اوسبورن]]
*[[شاہِد بڈگٲمی]]
}}<noinclude>
{{documentation}}
</noinclude>
2heg8nyon636n5dwuua0ouvah02f6nl
جامع مسجد، لکھنؤ
0
19766
142900
91691
2026-06-25T23:29:13Z
InternetArchiveBot
8158
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
142900
wikitext
text/x-wiki
جامع مسجد، لکھنؤ چھِ اَکھ مسجد یوٚس حسین آباد، لکھنؤ کِس علاقس مَنٛز واقعہٕ چھِ۔ امہِ مسجِدٕچ تعمیر ٲس 1839 عیسوی مَنٛز اودھٕکؠ ترٛیٚیِم بادشاہ محمد علی شاہن دِلہِ مَنٛز جامع مسجد پتھ تراونٕکؠ ارادٕ سٟتؠ شۆروٗع کٔرمٕژ، مگر تہنٛدِ مرنہٕ پتہٕ کٔر یہِ مسجد 1845 عیسوی مَنٛز تہنٛزِ خانٛدارِنہِ ملکہ ملکا جہاں صاحبن مُکمل۔
"لکھوری" سیرٮ۪و سٟتؠ بناونہٕ آمُت تہٕ چونہٕ سٟتؠ پلسٹر کرنہٕ آمُت، یہِ چھُ رنگین سٹوکو نقشو سٟتؠ سجاونہٕ یِوان۔ ایکِس مربع بلند چھتس پؠٹھ کھڑا ، اَتھ چھُ اَکھ مستطیل نماز ہال، مغربس مَنٛز چھُ کاہ محرابن ہند شاندار پہلو سٟتؠ۔ مرکزی چھُ زیٛادٕ تہٕ چھُ اَکھ غٲر معمولی طورس پؠٹھ تھود دروازٕ فراہم کرنہٕ یوان یُس رنگین سٹوکو سٟتؠ سجاونہٕ آمت تیزی سان نوکیلہٕ محراب مَنٛز چھتس پؠٹھ چھُ بڑان۔
نماز گاہَس مَنٛز چھِ ناشپاتی شکلہِ ہٕنٛدؠ ترٛےٚ تھدِ ڈبل گنبد لگاونہٕ آمٕتؠ یِم پٮ۪ٹھمِس حصَس پؠٹھ الٹہٕ کمل سٟتؠ سجاونہٕ چھِ آمٕتؠ تہٕ اَتھ چھِ دۄشوٕنی طرفہٕ زٕ آکٹگونل ژور منزلہٕ ٹیپرنگ مینار تہِ ؤلِتھ، یِمَن پؠٹھ "چھتریز" تاج لٲگِتھ چھُ۔ اَکھ امام بارا یَتھ امبا ونان چھِ. <ref>{{Cite web |title=Places to Visit in Lucknow |url=https://www.arvholidays.com/places-to-visit-in-lucknow.html |access-date=2024-01-02 |website=www.arvholidays.com |archive-date=2024-01-02 |archive-url=https://web.archive.org/web/20240102142118/https://www.arvholidays.com/places-to-visit-in-lucknow.html |url-status=dead }}</ref>
6wa8g76yalogmj33hxflrm48r1mu5ac
ایم ڈی ایم اے
0
20132
142846
142784
2026-06-25T18:01:10Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142846
wikitext
text/x-wiki
{{Infobox drug/Wikidata|pregnancy_category=C}}
'''33,4-میتھیلینیڈیآکسیمیتھامفیٹامین''' (MDMA)، یَتھ عام طور پٲٹھؠ '''ایکسٹیسی''' (E) یا '''مولی''' ونان چھِ، چھِ اَکھ نفسیاتی دَوا یُس بنیٲدی طور تفریحی مقصدن خٲطرٕ اِستِمال گژھان چھُ۔ مطلوبہ اثراتن مَنٛز چھ تبدیل شدٕ احساسات، توانٲیی مَنٛز اضافہٕ، ہمدردی سٟتؠ سٟتؠ خوشی تہٕ شٲمل۔ ییلہ ٲس چھُ نیران تہٕ چھُ اثر 30 پؠٹھ 45 منٹن مَنٛز شۆروٗع گژھان تہٕ چھُ 3 پؠٹھ شین گھنٹن تام روزان۔<ref name="Current2013">{{Cite journal|vauthors=Meyer JS|title=3,4-methylenedioxymethamphetamine (MDMA): current perspectives|journal=Substance Abuse and Rehabilitation|volume=4|issue=|pages=83–99|year=2013|pmid=24648791|pmc=3931692|doi=10.2147/SAR.S37258}}</ref><ref name="Drugs2014">{{ویب حَوالہٕ|title=MDMA|url=https://www.drugs.com/illicit/mdma.html|access-date=30 March 2016|editor-last=Anderson|editor-first=Leigh|website=Drugs.com|publisher=Drugsite Trust|date=18 May 2014|url-status=live|archive-url=https://web.archive.org/web/20160323161153/http://www.drugs.com/illicit/mdma.html|archive-date=23 March 2016}}</ref><ref name="Freye2009">{{کِتاب حَوالہٕ|last=Freye|first=Enno|title=Pharmacology and Abuse of Cocaine, Amphetamines, Ecstasy and Related Designer Drugs|date=28 July 2009|publisher=Springer Netherlands|isbn=978-90-481-2448-0|pages=151–160|chapter=Pharmacological Effects of MDMA in Man|doi=10.1007/978-90-481-2448-0_24}}</ref><ref name="NIH2016">{{ویب حَوالہٕ|title=DrugFacts: MDMA (Ecstasy/Molly)|url=https://www.drugabuse.gov/publications/drugfacts/mdma-ecstasymolly|website=National Institute on Drug Abuse|access-date=30 March 2016|date=February 2016|url-status=live|archive-url=https://web.archive.org/web/20160323164024/https://www.drugabuse.gov/publications/drugfacts/mdma-ecstasymolly|archive-date=23 March 2016}}</ref>
منفی اثراتن مَنٛز چھ نشٲنی، یادداشت مسایل پاگل پن، سونٛچنس مَنٛز دشواری، دانت [[عأرَق|پسینہٕ]] دھندلی بصارت، پسینہٕ تہٕ دلٕچ دھڑکن تیزی سان شٲمل۔<ref name="Drugs2014" /> جسمہٕ کس درجہ حرارتس مَنٛز اضافہٕ تہٕ پانیچ کمی سٟتؠ چھ موتچ اطلاع۔<ref name="Drugs2014" /> اِستِمال کرنہٕ پتہٕ چھ لکھ اکثر افسردہ تہٕ تھکن۔ محسوس کران۔<ref name="Drugs2014" /> ایم ڈی ایم اے چھ بنیٲدی طور پٲنٹھ دماغک کیٛن حصن مَنٛز نیورو ٹرانسمیٹر سیرٹونن ڈوپاماین تہٕ نوراڈرینالین سرگرمی مَنٛز اضافہٕ کران۔<ref name="Drugs2014" /><ref name="NIH2016" /> یہِ چھُ دَوا کس متبادل ایمفیٹامین طبقہٕ سٟتؠ تعلق تھاوان تہٕ اَتھ چھ محرک تہٕ ہالوکینوجینک اثرات آسان۔<ref>{{کِتاب حَوالہٕ|last=Freye|first=Enno|title=Pharmacology and Abuse of Cocaine, Amphetamines, Ecstasy and Related Designer Drugs: A comprehensive review on their mode of action, treatment of abuse and intoxication|date=2009|publisher=Springer Science & Business Media|isbn=978-90-481-2448-0|page=147|url=https://books.google.com/books?id=OTAlolM3XlwC&pg=PA147|language=en|access-date=30 July 2020|archive-date=5 August 2020|archive-url=https://web.archive.org/web/20200805215541/https://books.google.com/books?id=OTAlolM3XlwC&pg=PA147|url-status=live}}</ref>
زیٛادٕ تر ممالکن مَنٛز چھ MDMA غٲر قانونی تہٕ 2018 تام، چھنہٕ امیک کہہ منظور شدہ طبی اِستِمال<ref name="Drugs2014" /><ref>{{کِتاب حَوالہٕ|last=Patel|first=Vikram|title=Mental and neurological public health a global perspective|date=2010|publisher=Academic Press/Elsevier|location=San Diego, CA|isbn=978-0-12-381527-9|page=57|edition=1st|url=https://books.google.com/books?id=8fihf3VWbcIC&pg=PA57|url-status=live|archive-url=https://web.archive.org/web/20170910234523/https://books.google.com/books?id=8fihf3VWbcIC&pg=PA57|archive-date=10 September 2017|df=dmy-all}}</ref><ref>{{Cite news|last=Philipps|first=Dave|title=Ecstasy as a Remedy for PTSD? You Probably Have Some Questions.|url=https://www.nytimes.com/2018/05/01/us/ecstasy-molly-ptsd-mdma.html|accessdate=14 July 2018|journal=The New York Times|date=1 May 2018|language=en|archivedate=15 July 2018|archiveurl=https://web.archive.org/web/20180715011157/https://www.nytimes.com/2018/05/01/us/ecstasy-molly-ptsd-mdma.html}}</ref> تحقیقہٕ خٲطرٕ چھ بعض اوقات محدود مستثنیات یوان کرنہٕ۔<ref name="NIH2016" /> محققین چھ اَتھ کتھؠ ہنٛز چھان بین کران کہ آیا ایم ڈی ایم اے ہیکہٕ شدید، یَلاجس خَلاف مزاحم پوسٹ ٹرامیٹک اسٹریس ڈس آرڈرک (پی ٹی ایس ڈی) یَلاجس مَنٛز مَدَتھ کٔرِتھ فیز 3 کلینیکل ٹرایلز سٟتؠ تاکہ تاثیر تہٕ حفاظت ییہٕ ۄچھتھ یمچ توقع 2018 مَنٛز گژھن۔<ref>{{Cite journal|vauthors=Feduccia AA, Holland J, Mithoefer MC|title=Progress and promise for the MDMA drug development program|journal=Psychopharmacology|volume=235|issue=2|pages=561–571|date=February 2018|pmid=29152674|doi=10.1007/s00213-017-4779-2}}</ref> 2017 مَنٛز، ایف ڈی اے۔ ہن دیت ایم ڈی ایم اے یس پی ٹی ایس ڈی خٲطرٕ اَکھ کامیاب تھراپی عہدہ، یمک مطلب چھ ز اگر مطالعہٕ چھ وعدٕ کران، ممکنہٕ طبی استعمالک جایزٕ ہیٚکہٕ زیٛادٕ تیزی سان گژھت۔<ref>{{Cite news|last=Wan|first=William|title=Ecstasy could be 'breakthrough' therapy for soldiers, others suffering from PTSD|url=https://www.washingtonpost.com/national/health-science/ecstasy-could-be-breakthrough-therapy-for-soldiers-others-suffering-from-ptsd/2017/08/26/009314ca-842f-11e7-b359-15a3617c767b_story.html|accessdate=29 August 2017|journal=Washington Post|date=26 August 2017|archiveurl=https://web.archive.org/web/20170829081013/https://www.washingtonpost.com/national/health-science/ecstasy-could-be-breakthrough-therapy-for-soldiers-others-suffering-from-ptsd/2017/08/26/009314ca-842f-11e7-b359-15a3617c767b_story.html?utm_term=.e5b3c1c4854a|archivedate=29 August 2017}}</ref>
ایم ڈی ایم اے اوس گۄڈنُیٛک لٹہٕ 1912 مَنٛز مرکی۔ ذریعہٕ تیار آمت کرنہٕ۔<ref name="Merck">{{Cite journal|vauthors=Freudenmann RW, Öxler F, Bernschneider-Reif S|title=The origin of MDMA (ecstasy) revisited: the true story reconstructed from the original documents|url=http://www.thedea.org/docs/2006_Freudenmann_22846_1.pdf|journal=Addiction|volume=101|issue=9|pages=1241–1245|date=August 2006|pmid=16911722|doi=10.1111/j.1360-0443.2006.01511.x|quote=Although MDMA was, in fact, first synthesized at Merck in 1912, it was not tested pharmacologically because it was only an unimportant precursor in a new synthesis for haemostatic substances.|access-date=30 July 2020|archive-date=22 September 2020|archive-url=https://web.archive.org/web/20200922140222/http://www.thedea.org/docs/2006_Freudenmann_22846_1.pdf|url-status=live}}</ref> یہِ اوس 1970 کس دہایی مَنٛز شۆروٗع گژھن وٲل سایکو تھراپی بڑھاونہٕ خٲطرٕ اِستِمال کرنہٕ آمت تہٕ 1980 کس دہایی مَنٛز گو سٹریٹ ڈرگک پٲنٹھ مَقبوٗل۔<ref name="Drugs2014" /><ref name="NIH2016" /> ایم ڈی ایم اے چھ عام طور پٲٹھؠ ڈانس پارٹی راون۔ تہٕ الیکٹرانک ڈانس میوزک سٟتؠ وابستہٕ۔<ref name="WHO2004">{{کِتاب حَوالہٕ|last=World Health Organization|title=Neuroscience of Psychoactive Substance Use and Dependence|url=https://books.google.com/books?id=G9OhG-dZdAwC&pg=PA97|year=2004|publisher=World Health Organization|isbn=978-92-4-156235-5|pages=97–|url-status=live|archive-url=https://web.archive.org/web/20160428231233/https://books.google.com/books?id=G9OhG-dZdAwC&pg=PA97|archive-date=28 April 2016|df=dmy-all}}</ref> یہٕ ہیکہ دیگر اشیاہس سٟتؠ ملاوٹ یَتھ کٕن زن ایفیڈرین ایمفیٹامین، تہٕ میتھامفیٹامین<ref name="Drugs2014" /> 2016 مَنٛز، 15 تہٕ 64 ورین درمیان چھ تَقریٖبَن 21 ملین افراد (دُنؠیاہک 0.3% آبٲدی) ایکسٹیسی اِستِمال کران۔<ref name="UN2018">{{کِتاب حَوالہٕ|title=World Drug Report 2018|date=June 2018|publisher=United Nations|isbn=978-92-1-148304-8|page=7|access-date=14 July 2018|url=https://www.unodc.org/wdr2018/prelaunch/WDR18_Booklet_1_EXSUM.pdf|archive-date=27 July 2018|archive-url=https://web.archive.org/web/20180727030037/http://www.unodc.org/wdr2018/prelaunch/WDR18_Booklet_1_EXSUM.pdf|url-status=live}}</ref> یہٕ اوس وسیع پیمانس پؠٹھ لوٗکن ہند فیصد سٟتؠ ملان جلان یوس کوکین یا امفیٹاماینز چھ اِستِمال کران، مگر کیناباس یا اوپییوڈز کہ مقابلس مَنٛز چھ کم۔<ref name="UN2018" /> ریاستہاے متحدس مَنٛز، 2017 ہس تام، تَقریٖبَن 7% لوٗکو چھِ پننہٕ زندگی ہنٛد کنہٕ وقتہٕ MDMA اِستِمال کوٚرمت تہٕ 0.9% لوکو کوٛرمت یہٕ اِستِمال۔<ref>{{ویب حَوالہٕ|title=MDMA (Ecstasy/Molly)|url=https://www.drugabuse.gov/drugs-abuse/mdma-ecstasymolly|website=National Institute on Drug Abuse|access-date=14 July 2018|archive-date=15 July 2018|archive-url=https://web.archive.org/web/20180715011009/https://www.drugabuse.gov/drugs-abuse/mdma-ecstasymolly|url-status=live}}</ref>
== حَوالہٕ ==
lh97xomfrkmid9f8jjw3zwdak5okujb
میلوکسکیم
0
20166
142844
142786
2026-06-25T18:01:00Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142844
wikitext
text/x-wiki
{{Infobox drug/Wikidata}}
'''میلوکسکیم''' یُس '''موبیک''' ناوس تحت کٕنٛنہٕ چھُ یوان، چھُ اَکھ غٲر سٹیرایڈیل اینٹی انفریمیٹری دَوا (NSAID) یُس ریومیٹک تہٕ آسٹیوآرتھرایٹسس مَنٛز دگ تہٕ [[وَرَم|وَرَر]] ہنٛد عیٚلاج کرنہٕ خٲطرٕ چھ اِستِمال یوان کرنہٕ۔<ref name="BNF76">{{کِتاب حَوالہٕ|title=British national formulary : BNF 76|date=2018|publisher=Pharmaceutical Press|isbn=9780857113382|pages=1112–1113|edition=76}}</ref><ref name="AHFS2018">{{ویب حَوالہٕ|title=Meloxicam Monograph for Professionals|url=https://www.drugs.com/monograph/meloxicam.html|website=Drugs.com|publisher=AHFS|access-date=23 December 2018|archive-date=23 December 2018|archive-url=https://web.archive.org/web/20181223073727/https://www.drugs.com/monograph/meloxicam.html|url-status=live}}</ref> یہِ چھُ ٲس کہِ ذریعہ یا [[خوٗن رَگہٕ|رَگَن]] مَنٛز انجیکشن کہ ذریعہ اِستِمال گژھان۔<ref name="AHFS2018" /> یہِ چھُ تجویٖز کرنہٕ یوان ز یہِ ییہٕ کم کھۄتہٕ کم وقتس خٲطرٕ تہٕ کم ڈوزس پؠٹھ اِستِمال کرنہٕ۔<ref name="AHFS2018" />
عام ضمنی اثراتس مَنٛز چھ یڈ دَگ، چکرٕ، وَرَم، کَلہٕ دود شٲمل۔<ref name="AHFS2018" /> سنگین مضر اثراتس مَنٛز ہیٚکن دلٕچ بؠمار، فالج، گردٕک مسلہٕ، تہٕ معدٕک السر شٲمل ٲستھ۔<ref name="AHFS2018" /> حملٕچ ترٛیٚیمس حِصَس مَنٛز چھنہٕ یہِ اِستِمال کرنہٕ یوان۔<ref name="AHFS2018" /> یہٕ چھُ سایکلو آکسیجنیز-2 (COX-2) بُلاک کران سایکل آکسیجینیز-1 (COX) کھۄتہٕ زیٛادٕ بلاک کران۔<ref name="AHFS2018" /> یہِ چھُ [[کیٖمیٲیی مُرَکَب]] کس [[اوکسیکم]] خاندانَس مَنٛز تہٕ چھ پایروکسیامس سٟتؠ نزدیکی تعلق تھاوان۔<ref name="AHFS2018" />
میلوکسکیم آو 1977 مَنٛز پیٹنٹ کرنہٕ تہٕ 2000 مَنٛز آو ریاستہاے متحدس مَنٛز طبی اِستِمال خٲطرٕ منظور کرنہٕ۔<ref name="AHFS2018" /><ref name="Fis2006">{{کِتاب حَوالہٕ|last=Fischer|first=Jnos|last2=Ganellin|first2=C. Robin|title=Analogue-based Drug Discovery|date=2006|publisher=John Wiley & Sons|isbn=9783527607495|page=519|url=https://books.google.com/books?id=FjKfqkaKkAAC&pg=PA519|access-date=30 June 2020|archive-date=10 July 2020|archive-url=https://web.archive.org/web/20200710155623/https://books.google.com/books?id=FjKfqkaKkAAC&pg=PA519|url-status=live}}</ref> یہِ اوس بوہرنگر انگیل ہیمن تیار کوٚرمت، تاہم چھ یہِ عام دَوا۔ کس طورس پیٚٹھ تہٕ دستیاب۔<ref name="AHFS2018" /> ریاستہاے متحدہس مَنٛز چھ فی ڈوز تھوک قٟمَتھ 2018 ہس تام 0.02 امریکی ڈالر کھۄتہٕ کم۔<ref name="ref">{{ویب حَوالہٕ|title=NADAC as of 2018-12-19|url=https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-as-of-2018-12-19/g7bs-ahj4|website=[[Centers for Medicare & Medicaid Services|Centers for Medicare & Medicaid Services]] (CMS)|access-date=22 December 2018|archive-date=19 December 2018|archive-url=https://web.archive.org/web/20181219230344/https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-as-of-2018-12-19/g7bs-ahj4|url-status=dead}} {{Webarchive|url=https://web.archive.org/web/20181219230344/https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-as-of-2018-12-19/g7bs-ahj4 |date=2018-12-19 }}</ref> برطانیہس مَنٛز چھ 2018 ہس تام امیک قٟمت تَقریٖبَن 0.1 پاؤنڈ۔<ref name="BNF76" /> 2017 مَنٛز، اوس یہِ ریاستہاے متحدس مَنٛز 38 ہم سارِوٕے کھۄتہٕ زیٛادٕ عام طور پٲنٹھ تجویز کرنہٕ آمت دَوا، یَتھ مَنٛز 19 ملین کھۄتہٕ زیٛادٕ نسخہٕ ٲس آمت دینہٕ۔<ref name="ref1">{{ویب حَوالہٕ|title=The Top 300 of 2020|url=https://clincalc.com/DrugStats/Top300Drugs.aspx|publisher=ClinCalc|access-date=11 April 2020|archive-date=12 February 2021|archive-url=https://web.archive.org/web/20210212142534/https://clincalc.com/DrugStats/Top300Drugs.aspx|url-status=live}}</ref><ref name="ref2">{{ویب حَوالہٕ|title=Meloxicam Drug Usage Statistics|website=ClinCalc|date=23 December 2019|url=https://clincalc.com/DrugStats/Drugs/Meloxicam|access-date=11 April 2020|archive-date=12 April 2020|archive-url=https://web.archive.org/web/20200412021159/https://clincalc.com/DrugStats/Drugs/Meloxicam|url-status=live}}</ref>
== حَوالہٕ ==
<references />
sg9muqlei8df43ncxfkgjarl6atla5h
نیپرکسین
0
20188
142842
142790
2026-06-25T18:00:50Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142842
wikitext
text/x-wiki
{{Infobox drug/Wikidata}}
'''نیپرکسین''' ({{Lang-en|Naproxen}}) یُس '''ایلیو''' برانڈ ناوس تَحَت کٕنٛنہٕ یوان، چھُ اَکھ [[غٲر سٹیرایڈل اینٹی انفلیمیٹری دوا|غٲر سٹیرایڈیل اینٹی انفلیمیٹری دوا]] (NSAID) یُس دگ، ماہواری ہنٛز دگ، [[وَرَم]] بیماریہٕ یَتھ کٔنؠ زن ریومیٹایڈ گٹھیا تہٕ [[تَپھ|بخار]]س عیٚلاج کرنہٕ خٲطرٕ چھ اِستِمال یوان کرنہٕ۔<ref name="AHFS2018">{{ویب حَوالہٕ|title=Naproxen Monograph for Professionals|url=https://www.drugs.com/monograph/naproxen.html|website=Drugs.com|publisher=AHFS|access-date=19 December 2018|archive-date=20 December 2018|archive-url=https://web.archive.org/web/20181220230452/https://www.drugs.com/monograph/naproxen.html|url-status=live}}</ref> یہٕ چھ [[ٲس]] ذریعہٕ ننہٕ یوان۔<ref name="AHFS2018" /> یہِ چھُ فوری تہٕ تاخیر ریلیز فارمولیشنن مَنٛز دستیاب۔<ref name="AHFS2018" /> اثر چھِ اکہ گھنٛٹس اندر شۆروٗع گژھان تہٕ بَہَن گھنٹن تام روزان۔<ref name="AHFS2018" />
عام ضمنی اثراتس مَنٛز چھ چکرٕ،کَلہٕ دود زخم، الرجی رد عمل، دلٕچ جلن تہٕ یڈ دگ شٲمل۔<ref name="AHFS2018" /> شدید مضر اثراتس مَنٛز چھ دلٕدلٕچ بیماری۔ فالج، تہٕ [[میٛادٕ|میٛادُک]] السرک خطرٕ بڑن شٲمل۔<ref name="AHFS2018" /> دل کہ بیمار ہند خطرٕ ہیٚکہ باقٕے NSAIDs کہ مقابلس مَنٛز کم ٲستھ۔<ref name="AHFS2018" /> یہِ چھنہٕ تمن لوٗکن مَنٛز تَجویٖز یوان کرنہٕ یمن گرڈن ہنٛد مسلہٕ چھ۔ <ref name="AHFS2018" /> حملٕچ ترٛیٚیمس تریمس حصس مَنٛز چھنہٕ یہِ اِستِمال کرنہٕ یوان۔<ref name="AHFS2018" />
نیپرکسین چھُ اَکھ غٲر منتخب COX انفیکٹر۔<ref name="AHFS2018" /> یہِ چھ دواہن ہنٛدس پروپیونک ایسڈ کلاسس مَنٛز۔<ref name="AHFS2018" /> بطور اَکھ NSAID، نیپروکسن چھ پروسٹاگلینڈنس نٲمی سوزش کرن والین ثالثن ہِنٛز پٲداوار کم کٔرِتھ پنٕنؠ سوزش روکاونٕچ کٲم کران نظر یوان۔<ref>{{کِتاب حَوالہٕ|last=McEvoy|first=Gerald K.|title=AHFS Drug Information, 2000|date=2000|publisher=American Society of Health-System Pharmacists|isbn=9781585280049|page=1854|url=https://books.google.com/books?id=E3iynUKXWoYC&q|access-date=22 May 2020|archive-date=6 August 2020|archive-url=https://web.archive.org/web/20200806051015/https://books.google.com/books?id=E3iynUKXWoYC&q|url-status=live}}</ref> یہِ چھ جگر کہ ذریعہٕ غیر فعال میٹابولایٹس مَنٛز میٹابولایز یوان کرنہٕ۔<ref name="AHFS2018" />
۔ NYECOUNTDOWN، یہٕ ٲس 1960 مَنٛز امریکی طبی اِستِمال خٲطرٕہ منظور آمت کرنہٕ۔<ref name="Naprosyn label">{{ویب حَوالہٕ|title=Naprosyn- naproxen tablet EC-Naprosyn- naproxen tablet, delayed release Anaprox DS- naproxen sodium tablet|website=DailyMed|date=1 July 2019|url=https://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=8bff5df5-d856-4237-b6a8-ae445b454844|access-date=27 December 2019|archive-date=8 August 2020|archive-url=https://web.archive.org/web/20200808205112/https://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=8bff5df5-d856-4237-b6a8-ae445b454844|url-status=live}}</ref><ref name="AHFS2018" /><ref name="Fis2006">{{کِتاب حَوالہٕ|last=Fischer|first=Jnos|last2=Ganellin|first2=C. Robin|title=Analogue-based Drug Discovery|date=2006|publisher=John Wiley & Sons|isbn=9783527607495|page=520|url=https://books.google.com/books?id=FjKfqkaKkAAC&pg=PA520|access-date=22 May 2020|archive-date=6 August 2020|archive-url=https://web.archive.org/web/20200806185251/https://books.google.com/books?id=FjKfqkaKkAAC&pg=PA520|url-status=live}}</ref> یہِ چھ کاؤنٹرس پیٚٹھ تہٕ عام دَوا۔ کس طورس پیٚٹھ دٔستیاب۔<ref name="AHFS2018" /><ref>{{ویب حَوالہٕ|title=Medicines A to Z - Naproxen|url=https://www.nhs.uk/medicines/naproxen/|website=NHS|publisher=National Health Service|access-date=11 March 2020|date=24 October 2018|archive-date=30 June 2020|archive-url=https://web.archive.org/web/20200630024552/https://www.nhs.uk/medicines/naproxen/|url-status=live}}</ref> برطانیہس مَنٛز چھ 2017 ہس مَنٛز فی ڈوز لگ بگ £ 0.15 لاگت یوان۔<ref name="BNF74">{{کِتاب حَوالہٕ|title=British national formulary : BNF 74|date=2017|publisher=British Medical Association|isbn=978-0857112989|pages=1048–1049|edition=74}}</ref> ریاستہاے متحدہس مَنٛز، فی ڈوز تھوک قٟمَتھ چھ 2018 ہس تام 0.10 امریکی ڈالر کھۄتہٕ کم۔<ref name="ref">{{ویب حَوالہٕ|title=NADAC as of 2018-12-19|url=https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-as-of-2018-12-19/g7bs-ahj4|website=Centers for Medicare and Medicaid Services|access-date=22 December 2018|archive-date=19 December 2018|archive-url=https://web.archive.org/web/20181219230344/https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-as-of-2018-12-19/g7bs-ahj4|url-status=dead}}</ref> 2017 مَنٛز، اوس یہِ ریاستہاے متحدس مَنٛز 71 ہم سارِوٕے کھۄتہٕ زیٛادٕ عام طور پٲنٹھ تجویز کرنہٕ آمت دَوا، یَتھ مَنٛز 11 ملین کھۄتہٕ زیٛادٕ نسخہٕ ٲس آمت دینہٕ۔<ref name="ref1">{{ویب حَوالہٕ|title=The Top 300 of 2020|url=https://clincalc.com/DrugStats/Top300Drugs.aspx|publisher=ClinCalc|access-date=11 April 2020|archive-date=12 February 2021|archive-url=https://web.archive.org/web/20210212142534/https://clincalc.com/DrugStats/Top300Drugs.aspx|url-status=live}}</ref><ref name="ref2">{{ویب حَوالہٕ|title=Naproxen - Drug Usage Statistics|website=ClinCalc|url=https://clincalc.com/DrugStats/Drugs/Naproxen|access-date=11 April 2020|archive-date=12 April 2020|archive-url=https://web.archive.org/web/20200412021222/https://clincalc.com/DrugStats/Drugs/Naproxen|url-status=live}}</ref>
== حوالہ جات ==
<references />
[[Category:Translated from MDWiki]]
nn40g9d2n1nfej2ohtz0qyrx0020rc6
پارکنسن بؠمٲرؠ
0
20269
142823
96182
2026-06-25T15:42:53Z
آیات محراج
11062
/* */ temp added
142823
wikitext
text/x-wiki
{{Infobox medical condition/Wikidata}}
'''پارکنسن''' بؠمٲرؠ (یا صرف پارکنسنز،) چھِ [[مَرکزی نٲرَن ہُنٛد نِظام]] اَکھ طویل مدتی انحطاطٕچ بؠمٲر یۄس بنیٲدی طور موٹر سسٹمس مُتٲثِر کَران۔ علامات چھِ عموٗمَن وارٕ وارٕ ظٲہِر گژھَان۔ بؠمارِ ہِنٛدِس شُروٗعاتس مَنٛز چھِ سارِوٕے کھۄتہٕ واضح علامتہٕ لرزانٕن، سخٕت، حرکتَس مَنٛز سست رفتار، تہٕ پکنَس مَنٛز دُشوٲری۔ سوچ تہٕ طرز عملک مسائل تہٕ ہیٚکن گژھتھ۔ بٮ۪مارِ ہِنٛدِس ترقی یافتہٕ مرحلَس مَنٛز چھُ ڈیمنشیا عام گژھان۔ ڈپریشن تہٕ اضطراب تہٕ چھُ عام، یُس PD والن اکہٕ تہائی کھوتہٕ زیٛادٕ لوکن مَنٛز گژھان چھُ۔ پارکنسنز کہ بیمارٕچ وجہ چھنہٕ معلوم، مگر خیال چھ یوان کَرنہٕ زِ اَتھ مَنٛز چھ جینیٲتی تہٕ ماحولیٲتی دۄشوی وجہ شٲمل۔<ref name="Lancet2015">{{Cite journal|vauthors=Kalia LV, Lang AE|title=Parkinson's disease|journal=Lancet|volume=386|issue=9996|pages=896–912|date=August 2015|pmid=25904081|doi=10.1016/s0140-6736(14)61393-3}}</ref> یمن خاندانن ہنٛدؠ رکن مُتٲثِر چھ تمن چھ پاٛز ٕ بیمار گژھنک امکان زیٛادٕ آسان۔<ref name="Lancet2015" /> تمن لوکن مَنٛز تہٕ چھ خطرٕ زیٛادٕ آسان یمن بعض کیٚمؠ مار دواہن ہنٛد سامنہٕ چھ یوان تہٕ یمن مَنٛز یمن گۄڈٕ سرٕ چوٹ چھ آمتؠ، ییلہٕ زن تمباکو تمباکو نوشی کرن وٲلؠ تہٕ [[کافی|کافی۔]] یا [[چاے|چائے۔]] پینہٕ والن مَنٛز چھ خطرٕ کم آسان۔<ref name="Lancet2015" /><ref>{{Cite journal|vauthors=Barranco Quintana JL, Allam MF, Del Castillo AS, Navajas RF|title=Parkinson's disease and tea: a quantitative review|journal=Journal of the American College of Nutrition|volume=28|issue=1|pages=1–6|date=February 2009|pmid=19571153|doi=10.1080/07315724.2009.10719754}}</ref> بیمٲر ہٕنٛدیٚن موٹر علاماتن ہنٛد نٔتیٖجہٕ چھ سبسٹینٹیا نگراہس مَنٛز خلین ہنٛد مرنہٕ سٟتؠ آسان، یس مڈ برینک اَکھ خطہٕ چھ۔<ref name="NIH2016">{{ویب حَوالہٕ|title=Parkinson's Disease Information Page|url=https://www.ninds.nih.gov/Disorders/All-Disorders/Parkinsons-Disease-Information-Page|website=NINDS|access-date=18 July 2016|date=30 June 2016|url-status=live|archive-date=4 January 2017|archive-url=https://web.archive.org/web/20170104201403/http://www.ninds.nih.gov/Disorders/All-Disorders/Parkinsons-Disease-Information-Page}}</ref> ایمکہ نتیجس مَنٛز چھ نہٕ دماغ کہ اَتھ حصس مَنٛز کٲفی [[ڈوپاماین|ڈوپامائن]]<ref name="NIH2016" /> اَمہِ خلیہ کہ مرنٕچ وجہ چھ نہٕ کم سمجھنہٕ یوان، مگر اَتھ مَنٛز چھ نیورسن مَنٛز لیوی اجسامن مَنٛز پروٹین تعمیر شٲمل۔<ref name="Lancet2015" /> عام معملن ہنٛز تشخیص چھ بنیٲدی طور پٲنٹھ علامتن پؠٹھ مبنی آسان، یَتھ مَنٛز نیورو امیجنگ ہی ٹیسٹ باقی بیمارن مسترد کرنہٕ خٲطرٕ اِستِمال چھ یوان کرنہٕ۔<ref name="NIH2016" />
پارکنسنز کہ بیمارک چھنہٕ کانٛہہ علاج۔<ref name="NIH2016" /> علاجک مقصد چھ علامات بہتر بناون۔ <ref name="NIH2016" /><ref name="pmid15172778">{{Cite journal|vauthors=Samii A, Nutt JG, Ransom BR|title=Parkinson's disease|journal=Lancet|volume=363|issue=9423|pages=1783–93|date=May 2004|pmid=15172778|doi=10.1016/S0140-6736(04)16305-8|url=https://zenodo.org/record/1259791|access-date=2 August 2020|archive-date=29 January 2022|archive-url=https://web.archive.org/web/20220129053144/https://zenodo.org/record/1259791|url-status=live}}</ref> ابتدٲئی علاج چھ عام طور پٲٹھؠ اینٹیپارکنسن دواہ لیوڈوپا (L-DOPA) سٟتؠ گژھان تہٕ اَمہِ پتہٕ چھ ڈوپامائن ایگونسٹ آسان ییٚلہ لیوڈوپا کم اثر دار بنان چھ۔<ref name="Sv2016">{{Cite journal|vauthors=Sveinbjornsdottir S|title=The clinical symptoms of Parkinson's disease|journal=Journal of Neurochemistry|volume=139 Suppl 1|pages=318–324|date=October 2016|pmid=27401947|doi=10.1111/jnc.13691|doi-access=free}}</ref> یَتھ کٔنؠ ز بیمار چھ بڑان تہٕ نیوران چھ مسلسل ختم گژھان، یم دَوا چھ کم اثر دار آسان، ییلہٕ زن اکی وقتہٕ چھ غٲر ارادی طور پٲنٹھ حرکت کرن وٲل پیچیدگی پٲدٕ کران۔<ref name="Sv2016" /> خوراک تہٕ بحالی ہنٛز کنہہ شکلن چھ علامات بہتر بناونس مَنٛز کنہہ تاثیر ظٲہر کٔرمت۔<ref name="pmid19691125">{{Cite journal|vauthors=Barichella M, Cereda E, Pezzoli G|title=Major nutritional issues in the management of Parkinson's disease|journal=Movement Disorders|volume=24|issue=13|pages=1881–92|date=October 2009|pmid=19691125|doi=10.1002/mds.22705|hdl-access=free}}</ref><ref name="Neuro2011">{{Cite journal|vauthors=Ahlskog JE|title=Does vigorous exercise have a neuroprotective effect in Parkinson disease?|journal=Neurology|volume=77|issue=3|pages=288–94|date=July 2011|pmid=21768599|pmc=3136051|doi=10.1212/wnl.0b013e318225ab66}}</ref> سرٛن دماغچ محرک خاطرٕ مائکرو الیکٹروڈ تھونہٕ خاطرٕ چھ جراحی ہنٛد اِستِمال شدید معاملن مَنٛز موٹر علامات کم کرنہٕ خاطرٕ یوان کرنہٕ یتہٕ دواہ چھ غیر موثر آسان۔<ref name="NIH2016" /> پی ڈی ہٕنٛدیٚن حرکتس سٟتؠ متعلق علاماتن ہٕنٛد علاجک ثبوت، یَتھ کٔنؠ ز نؠسک مَنٛز خلل تہٕ جذبٲتی مسلہٕ، چھ کم مضبوٗط۔<ref name="Lancet2015" />
2015 مَنٛز، پی ڈی ین کوٚر 6.2 ملین افراد مُتٲثِر تہٕ اَمہِ کس نتیجس مَنٛز گیہٕ عالمی سطحس پؠٹھ تقریبا 117,400 افراد ہلاک۔<ref name="GBD2015Pre">{{Cite journal|title=Global, regional, and national incidence, prevalence, and years lived with disability for 310 diseases and injuries, 1990–2015: a systematic analysis for the Global Burden of Disease Study 2015|journal=Lancet|volume=388|issue=10053|pages=1545–1602|date=October 2016|pmid=27733282|pmc=5055577|doi=10.1016/S0140-6736(16)31678-6|last=GBD 2015 Disease Injury Incidence Prevalence Collaborators}}</ref><ref name="GBD2015De">{{Cite journal|title=Global, regional, and national life expectancy, all-cause mortality, and cause-specific mortality for 249 causes of death, 1980-2015: a systematic analysis for the Global Burden of Disease Study 2015|journal=Lancet|volume=388|issue=10053|pages=1459–1544|date=October 2016|pmid=27733281|pmc=5388903|doi=10.1016/s0140-6736(16)31012-1|last=GBD 2015 Mortality Causes of Death Collaborators}}</ref> پارکنسنزٕچ بؠمار چھےٚ عام طور 60 وہر کھۄتہٕ زیٛادٕ وٲنٛسہ لوکن مَنٛز گژھان، یمو منٛزٕ تقریبا اَکھ فیصد چھ متٲثر گژھان۔<ref name="NIH2016" /><ref name="Car2016">{{کِتاب حَوالہٕ|vauthors=Carroll WM|title=International Neurology|date=2016|publisher=John Wiley & Sons|isbn=9781118777367|page=188|url=https://books.google.com/books?id=mRl6DAAAQBAJ&pg=PA188|url-status=live|archive-url=https://web.archive.org/web/20170908154209/https://books.google.com/books?id=mRl6DAAAQBAJ&pg=PA188|archive-date=8 September 2017}}</ref> مرد چھ اکثر زنانن ہنٛدس مقابلس مَنٛز تقریبا 3:2 کس تناسبس مَنٛز زیٛادٕ مُتٲثِر آسان۔<ref name="Lancet2015" /> ییلہ یہِ 50 وٕہٕر برونٛہہ چھ لوکن مَنٛز وچھنہٕ یوان تہٕ اَتھ چھ ابتدٲئی آغاز PD ونان۔<ref>{{کِتاب حَوالہٕ|last=Mosley|first=Anthony D.|title=The encyclopedia of Parkinson's disease|date=2010|publisher=Facts on File|location=New York|isbn=9781438127491|page=89|edition=2nd|url=https://books.google.com/books?id=tE6VgburpxkC&pg=PA89|url-status=live|archive-url=https://web.archive.org/web/20170908154209/https://books.google.com/books?id=tE6VgburpxkC&pg=PA89|archive-date=8 September 2017}}</ref> تشخیص پتہٕ چھ اوسط زندگی ہنٛز توقع 7 پؠٹھ 15 ورین درمیان۔<ref name="Sv2016" /> اَمہِ بیمارک ناو چھ انگریز ڈاکٹر جیمز پارکنسن ناو دینہٕ آمتؠ، یمو 1817 مَنٛز شیکنگ فالجک گۄڈنُیٛک تفصیلی بیان شایَع کوٚر۔<ref name="An Essay on the Shaking Palsy">{{کِتاب حَوالہٕ|first=James|last=Parkinson|date=1817|publisher=Whittingham and Roland for Sherwood, Neely, and Jones|location=London|url=http://www.gutenberg.org/files/23777/23777-h/23777-h.htm|title=An Essay on the Shaking Palsy|url-status=live|archive-url=https://web.archive.org/web/20150924210730/http://www.gutenberg.org/files/23777/23777-h/23777-h.htm|archive-date=24 September 2015}}</ref><ref>{{Cite journal|vauthors=Shulman JM, De Jager PL, Feany MB|title=Parkinson's disease: genetics and pathogenesis|journal=Annual Review of Pathology|volume=6|pages=193–222|date=February 2011|pmid=21034221|doi=10.1146/annurev-pathol-011110-130242|orig-year=25 October 2010|url=https://semanticscholar.org/paper/857d00026b199a33e5aa162063adc35594f26f7c|access-date=2 August 2020|archive-date=28 August 2021|archive-url=https://web.archive.org/web/20210828205458/https://www.semanticscholar.org/paper/Parkinson%27s-disease%3A-genetics-and-pathogenesis.-Shulman-Jager/857d00026b199a33e5aa162063adc35594f26f7c|url-status=live}}</ref> عوٲمی آگٲزی ہنٛز مہمن مَنٛز چھ پارکنسنز کہ عالمی دوہ (جیمز پارکنسن سٕند زایہٕ دوہ، 11 اپریل) تہٕ بیمار ہنز علامت کہ طورس پؠٹھ وزل [[گۄلال|ٹولپ]] اِستِمال شٲمل۔<ref name="pmid18175393">{{Cite journal|vauthors=Lees AJ|title=Unresolved issues relating to the shaking palsy on the celebration of James Parkinson's 250th birthday|journal=Movement Disorders|volume=22 Suppl 17|issue=Suppl 17|pages=S327–34|date=September 2007|pmid=18175393|doi=10.1002/mds.21684}}</ref> پارکنسنز سٟتؠ مُتٲثِر گژھن والن لوکن یمو اَمہِ حالت کس بارس مَنٛز عوامچ آگہی مَنٛز اضافہٕ چھ کوٚرمت تمن مَنٛز چھ باکسنگ لیجنڈ محمد علی اداکار مائیکل جے فاکس اولمپک سائیکل سوار ڈیوس فنی تہٕ اداکار ایلن الڈا شٲمل۔<ref name="MJF_TIME">{{Cite news|url=http://www.time.com/time/specials/2007/time100/article/0,28804,1595326_1615754_1615882,00.html|title=Michael J. Fox|date=3 May 2007|last=Davis P|journal=The TIME 100|publisher=[[Time (magazine)|Time]]|accessdate=2 April 2011|archiveurl=https://web.archive.org/web/20110425013526/http://www.time.com/time/specials/2007/time100/article/0,28804,1595326_1615754_1615882,00.html|archivedate=25 April 2011}}</ref><ref name="Mac2008">{{Cite news|last=Macur|first=Juliet|title=For the Phinney Family, a Dream and a Challenge|url=https://www.nytimes.com/2008/03/26/sports/othersports/26cycling.html?pagewanted=all&_r=0|journal=The New York Times|accessdate=25 May 2013|date=26 March 2008|quote=About 1.5 million Americans have received a diagnosis of Parkinson's disease, but only 5 to 10 percent learn of it before age 40, according to the National Parkinson Foundation. Davis Phinney was among the few.|archiveurl=https://web.archive.org/web/20141106025145/http://www.nytimes.com/2008/03/26/sports/othersports/26cycling.html?pagewanted=all&_r=0|archivedate=6 November 2014}}</ref><ref name="Ali_NN_comment">{{Cite journal|url=http://www.aan.com/elibrary/neurologynow/?event=home.showArticle&id=ovid.com:/bib/ovftdb/01222928-200602020-00003|title=Muhammad Ali's Message: Keep Moving Forward|date=April 2006|journal=Neurology Now|last=Brey RL|volume=2|issue=2|page=8|access-date=2 April 2011|doi=10.1097/01222928-200602020-00003|url-status=dead|archive-url=https://web.archive.org/web/20110927022505/http://www.aan.com/elibrary/neurologynow/?event=home.showArticle&id=ovid.com%3A%2Fbib%2Fovftdb%2F01222928-200602020-00003|archive-date=27 September 2011}}</ref><ref>{{Cite news|last=Alltucker|first=Ken|title=Alan Alda has Parkinson's disease: Here are 5 things you should know|url=https://www.usatoday.com/story/news/nation/2018/07/31/alan-alda-has-parkinsons-disease-5-things-know/871265002/|accessdate=6 May 2019|agency=USA Today|date=31 July 2018|archivedate=6 May 2019|archiveurl=https://web.archive.org/web/20190506212143/https://www.usatoday.com/story/news/nation/2018/07/31/alan-alda-has-parkinsons-disease-5-things-know/871265002/}}</ref>
== حَوالہٕ ==
[[Category:Translated from MDWiki]]
hn71z6rhk491a5dvc7gqnbn29kx4mu5
142824
142823
2026-06-25T15:43:29Z
آیات محراج
11062
مِلاوُن [[زٲژ:بؠمٲرؠ]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
142824
wikitext
text/x-wiki
{{Infobox medical condition/Wikidata}}
'''پارکنسن''' بؠمٲرؠ (یا صرف پارکنسنز،) چھِ [[مَرکزی نٲرَن ہُنٛد نِظام]] اَکھ طویل مدتی انحطاطٕچ بؠمٲر یۄس بنیٲدی طور موٹر سسٹمس مُتٲثِر کَران۔ علامات چھِ عموٗمَن وارٕ وارٕ ظٲہِر گژھَان۔ بؠمارِ ہِنٛدِس شُروٗعاتس مَنٛز چھِ سارِوٕے کھۄتہٕ واضح علامتہٕ لرزانٕن، سخٕت، حرکتَس مَنٛز سست رفتار، تہٕ پکنَس مَنٛز دُشوٲری۔ سوچ تہٕ طرز عملک مسائل تہٕ ہیٚکن گژھتھ۔ بٮ۪مارِ ہِنٛدِس ترقی یافتہٕ مرحلَس مَنٛز چھُ ڈیمنشیا عام گژھان۔ ڈپریشن تہٕ اضطراب تہٕ چھُ عام، یُس PD والن اکہٕ تہائی کھوتہٕ زیٛادٕ لوکن مَنٛز گژھان چھُ۔ پارکنسنز کہ بیمارٕچ وجہ چھنہٕ معلوم، مگر خیال چھ یوان کَرنہٕ زِ اَتھ مَنٛز چھ جینیٲتی تہٕ ماحولیٲتی دۄشوی وجہ شٲمل۔<ref name="Lancet2015">{{Cite journal|vauthors=Kalia LV, Lang AE|title=Parkinson's disease|journal=Lancet|volume=386|issue=9996|pages=896–912|date=August 2015|pmid=25904081|doi=10.1016/s0140-6736(14)61393-3}}</ref> یمن خاندانن ہنٛدؠ رکن مُتٲثِر چھ تمن چھ پاٛز ٕ بیمار گژھنک امکان زیٛادٕ آسان۔<ref name="Lancet2015" /> تمن لوکن مَنٛز تہٕ چھ خطرٕ زیٛادٕ آسان یمن بعض کیٚمؠ مار دواہن ہنٛد سامنہٕ چھ یوان تہٕ یمن مَنٛز یمن گۄڈٕ سرٕ چوٹ چھ آمتؠ، ییلہٕ زن تمباکو تمباکو نوشی کرن وٲلؠ تہٕ [[کافی|کافی۔]] یا [[چاے|چائے۔]] پینہٕ والن مَنٛز چھ خطرٕ کم آسان۔<ref name="Lancet2015" /><ref>{{Cite journal|vauthors=Barranco Quintana JL, Allam MF, Del Castillo AS, Navajas RF|title=Parkinson's disease and tea: a quantitative review|journal=Journal of the American College of Nutrition|volume=28|issue=1|pages=1–6|date=February 2009|pmid=19571153|doi=10.1080/07315724.2009.10719754}}</ref> بیمٲر ہٕنٛدیٚن موٹر علاماتن ہنٛد نٔتیٖجہٕ چھ سبسٹینٹیا نگراہس مَنٛز خلین ہنٛد مرنہٕ سٟتؠ آسان، یس مڈ برینک اَکھ خطہٕ چھ۔<ref name="NIH2016">{{ویب حَوالہٕ|title=Parkinson's Disease Information Page|url=https://www.ninds.nih.gov/Disorders/All-Disorders/Parkinsons-Disease-Information-Page|website=NINDS|access-date=18 July 2016|date=30 June 2016|url-status=live|archive-date=4 January 2017|archive-url=https://web.archive.org/web/20170104201403/http://www.ninds.nih.gov/Disorders/All-Disorders/Parkinsons-Disease-Information-Page}}</ref> ایمکہ نتیجس مَنٛز چھ نہٕ دماغ کہ اَتھ حصس مَنٛز کٲفی [[ڈوپاماین|ڈوپامائن]]<ref name="NIH2016" /> اَمہِ خلیہ کہ مرنٕچ وجہ چھ نہٕ کم سمجھنہٕ یوان، مگر اَتھ مَنٛز چھ نیورسن مَنٛز لیوی اجسامن مَنٛز پروٹین تعمیر شٲمل۔<ref name="Lancet2015" /> عام معملن ہنٛز تشخیص چھ بنیٲدی طور پٲنٹھ علامتن پؠٹھ مبنی آسان، یَتھ مَنٛز نیورو امیجنگ ہی ٹیسٹ باقی بیمارن مسترد کرنہٕ خٲطرٕ اِستِمال چھ یوان کرنہٕ۔<ref name="NIH2016" />
پارکنسنز کہ بیمارک چھنہٕ کانٛہہ علاج۔<ref name="NIH2016" /> علاجک مقصد چھ علامات بہتر بناون۔ <ref name="NIH2016" /><ref name="pmid15172778">{{Cite journal|vauthors=Samii A, Nutt JG, Ransom BR|title=Parkinson's disease|journal=Lancet|volume=363|issue=9423|pages=1783–93|date=May 2004|pmid=15172778|doi=10.1016/S0140-6736(04)16305-8|url=https://zenodo.org/record/1259791|access-date=2 August 2020|archive-date=29 January 2022|archive-url=https://web.archive.org/web/20220129053144/https://zenodo.org/record/1259791|url-status=live}}</ref> ابتدٲئی علاج چھ عام طور پٲٹھؠ اینٹیپارکنسن دواہ لیوڈوپا (L-DOPA) سٟتؠ گژھان تہٕ اَمہِ پتہٕ چھ ڈوپامائن ایگونسٹ آسان ییٚلہ لیوڈوپا کم اثر دار بنان چھ۔<ref name="Sv2016">{{Cite journal|vauthors=Sveinbjornsdottir S|title=The clinical symptoms of Parkinson's disease|journal=Journal of Neurochemistry|volume=139 Suppl 1|pages=318–324|date=October 2016|pmid=27401947|doi=10.1111/jnc.13691|doi-access=free}}</ref> یَتھ کٔنؠ ز بیمار چھ بڑان تہٕ نیوران چھ مسلسل ختم گژھان، یم دَوا چھ کم اثر دار آسان، ییلہٕ زن اکی وقتہٕ چھ غٲر ارادی طور پٲنٹھ حرکت کرن وٲل پیچیدگی پٲدٕ کران۔<ref name="Sv2016" /> خوراک تہٕ بحالی ہنٛز کنہہ شکلن چھ علامات بہتر بناونس مَنٛز کنہہ تاثیر ظٲہر کٔرمت۔<ref name="pmid19691125">{{Cite journal|vauthors=Barichella M, Cereda E, Pezzoli G|title=Major nutritional issues in the management of Parkinson's disease|journal=Movement Disorders|volume=24|issue=13|pages=1881–92|date=October 2009|pmid=19691125|doi=10.1002/mds.22705|hdl-access=free}}</ref><ref name="Neuro2011">{{Cite journal|vauthors=Ahlskog JE|title=Does vigorous exercise have a neuroprotective effect in Parkinson disease?|journal=Neurology|volume=77|issue=3|pages=288–94|date=July 2011|pmid=21768599|pmc=3136051|doi=10.1212/wnl.0b013e318225ab66}}</ref> سرٛن دماغچ محرک خاطرٕ مائکرو الیکٹروڈ تھونہٕ خاطرٕ چھ جراحی ہنٛد اِستِمال شدید معاملن مَنٛز موٹر علامات کم کرنہٕ خاطرٕ یوان کرنہٕ یتہٕ دواہ چھ غیر موثر آسان۔<ref name="NIH2016" /> پی ڈی ہٕنٛدیٚن حرکتس سٟتؠ متعلق علاماتن ہٕنٛد علاجک ثبوت، یَتھ کٔنؠ ز نؠسک مَنٛز خلل تہٕ جذبٲتی مسلہٕ، چھ کم مضبوٗط۔<ref name="Lancet2015" />
2015 مَنٛز، پی ڈی ین کوٚر 6.2 ملین افراد مُتٲثِر تہٕ اَمہِ کس نتیجس مَنٛز گیہٕ عالمی سطحس پؠٹھ تقریبا 117,400 افراد ہلاک۔<ref name="GBD2015Pre">{{Cite journal|title=Global, regional, and national incidence, prevalence, and years lived with disability for 310 diseases and injuries, 1990–2015: a systematic analysis for the Global Burden of Disease Study 2015|journal=Lancet|volume=388|issue=10053|pages=1545–1602|date=October 2016|pmid=27733282|pmc=5055577|doi=10.1016/S0140-6736(16)31678-6|last=GBD 2015 Disease Injury Incidence Prevalence Collaborators}}</ref><ref name="GBD2015De">{{Cite journal|title=Global, regional, and national life expectancy, all-cause mortality, and cause-specific mortality for 249 causes of death, 1980-2015: a systematic analysis for the Global Burden of Disease Study 2015|journal=Lancet|volume=388|issue=10053|pages=1459–1544|date=October 2016|pmid=27733281|pmc=5388903|doi=10.1016/s0140-6736(16)31012-1|last=GBD 2015 Mortality Causes of Death Collaborators}}</ref> پارکنسنزٕچ بؠمار چھےٚ عام طور 60 وہر کھۄتہٕ زیٛادٕ وٲنٛسہ لوکن مَنٛز گژھان، یمو منٛزٕ تقریبا اَکھ فیصد چھ متٲثر گژھان۔<ref name="NIH2016" /><ref name="Car2016">{{کِتاب حَوالہٕ|vauthors=Carroll WM|title=International Neurology|date=2016|publisher=John Wiley & Sons|isbn=9781118777367|page=188|url=https://books.google.com/books?id=mRl6DAAAQBAJ&pg=PA188|url-status=live|archive-url=https://web.archive.org/web/20170908154209/https://books.google.com/books?id=mRl6DAAAQBAJ&pg=PA188|archive-date=8 September 2017}}</ref> مرد چھ اکثر زنانن ہنٛدس مقابلس مَنٛز تقریبا 3:2 کس تناسبس مَنٛز زیٛادٕ مُتٲثِر آسان۔<ref name="Lancet2015" /> ییلہ یہِ 50 وٕہٕر برونٛہہ چھ لوکن مَنٛز وچھنہٕ یوان تہٕ اَتھ چھ ابتدٲئی آغاز PD ونان۔<ref>{{کِتاب حَوالہٕ|last=Mosley|first=Anthony D.|title=The encyclopedia of Parkinson's disease|date=2010|publisher=Facts on File|location=New York|isbn=9781438127491|page=89|edition=2nd|url=https://books.google.com/books?id=tE6VgburpxkC&pg=PA89|url-status=live|archive-url=https://web.archive.org/web/20170908154209/https://books.google.com/books?id=tE6VgburpxkC&pg=PA89|archive-date=8 September 2017}}</ref> تشخیص پتہٕ چھ اوسط زندگی ہنٛز توقع 7 پؠٹھ 15 ورین درمیان۔<ref name="Sv2016" /> اَمہِ بیمارک ناو چھ انگریز ڈاکٹر جیمز پارکنسن ناو دینہٕ آمتؠ، یمو 1817 مَنٛز شیکنگ فالجک گۄڈنُیٛک تفصیلی بیان شایَع کوٚر۔<ref name="An Essay on the Shaking Palsy">{{کِتاب حَوالہٕ|first=James|last=Parkinson|date=1817|publisher=Whittingham and Roland for Sherwood, Neely, and Jones|location=London|url=http://www.gutenberg.org/files/23777/23777-h/23777-h.htm|title=An Essay on the Shaking Palsy|url-status=live|archive-url=https://web.archive.org/web/20150924210730/http://www.gutenberg.org/files/23777/23777-h/23777-h.htm|archive-date=24 September 2015}}</ref><ref>{{Cite journal|vauthors=Shulman JM, De Jager PL, Feany MB|title=Parkinson's disease: genetics and pathogenesis|journal=Annual Review of Pathology|volume=6|pages=193–222|date=February 2011|pmid=21034221|doi=10.1146/annurev-pathol-011110-130242|orig-year=25 October 2010|url=https://semanticscholar.org/paper/857d00026b199a33e5aa162063adc35594f26f7c|access-date=2 August 2020|archive-date=28 August 2021|archive-url=https://web.archive.org/web/20210828205458/https://www.semanticscholar.org/paper/Parkinson%27s-disease%3A-genetics-and-pathogenesis.-Shulman-Jager/857d00026b199a33e5aa162063adc35594f26f7c|url-status=live}}</ref> عوٲمی آگٲزی ہنٛز مہمن مَنٛز چھ پارکنسنز کہ عالمی دوہ (جیمز پارکنسن سٕند زایہٕ دوہ، 11 اپریل) تہٕ بیمار ہنز علامت کہ طورس پؠٹھ وزل [[گۄلال|ٹولپ]] اِستِمال شٲمل۔<ref name="pmid18175393">{{Cite journal|vauthors=Lees AJ|title=Unresolved issues relating to the shaking palsy on the celebration of James Parkinson's 250th birthday|journal=Movement Disorders|volume=22 Suppl 17|issue=Suppl 17|pages=S327–34|date=September 2007|pmid=18175393|doi=10.1002/mds.21684}}</ref> پارکنسنز سٟتؠ مُتٲثِر گژھن والن لوکن یمو اَمہِ حالت کس بارس مَنٛز عوامچ آگہی مَنٛز اضافہٕ چھ کوٚرمت تمن مَنٛز چھ باکسنگ لیجنڈ محمد علی اداکار مائیکل جے فاکس اولمپک سائیکل سوار ڈیوس فنی تہٕ اداکار ایلن الڈا شٲمل۔<ref name="MJF_TIME">{{Cite news|url=http://www.time.com/time/specials/2007/time100/article/0,28804,1595326_1615754_1615882,00.html|title=Michael J. Fox|date=3 May 2007|last=Davis P|journal=The TIME 100|publisher=[[Time (magazine)|Time]]|accessdate=2 April 2011|archiveurl=https://web.archive.org/web/20110425013526/http://www.time.com/time/specials/2007/time100/article/0,28804,1595326_1615754_1615882,00.html|archivedate=25 April 2011}}</ref><ref name="Mac2008">{{Cite news|last=Macur|first=Juliet|title=For the Phinney Family, a Dream and a Challenge|url=https://www.nytimes.com/2008/03/26/sports/othersports/26cycling.html?pagewanted=all&_r=0|journal=The New York Times|accessdate=25 May 2013|date=26 March 2008|quote=About 1.5 million Americans have received a diagnosis of Parkinson's disease, but only 5 to 10 percent learn of it before age 40, according to the National Parkinson Foundation. Davis Phinney was among the few.|archiveurl=https://web.archive.org/web/20141106025145/http://www.nytimes.com/2008/03/26/sports/othersports/26cycling.html?pagewanted=all&_r=0|archivedate=6 November 2014}}</ref><ref name="Ali_NN_comment">{{Cite journal|url=http://www.aan.com/elibrary/neurologynow/?event=home.showArticle&id=ovid.com:/bib/ovftdb/01222928-200602020-00003|title=Muhammad Ali's Message: Keep Moving Forward|date=April 2006|journal=Neurology Now|last=Brey RL|volume=2|issue=2|page=8|access-date=2 April 2011|doi=10.1097/01222928-200602020-00003|url-status=dead|archive-url=https://web.archive.org/web/20110927022505/http://www.aan.com/elibrary/neurologynow/?event=home.showArticle&id=ovid.com%3A%2Fbib%2Fovftdb%2F01222928-200602020-00003|archive-date=27 September 2011}}</ref><ref>{{Cite news|last=Alltucker|first=Ken|title=Alan Alda has Parkinson's disease: Here are 5 things you should know|url=https://www.usatoday.com/story/news/nation/2018/07/31/alan-alda-has-parkinsons-disease-5-things-know/871265002/|accessdate=6 May 2019|agency=USA Today|date=31 July 2018|archivedate=6 May 2019|archiveurl=https://web.archive.org/web/20190506212143/https://www.usatoday.com/story/news/nation/2018/07/31/alan-alda-has-parkinsons-disease-5-things-know/871265002/}}</ref>
== حَوالہٕ ==
[[Category:Translated from MDWiki]]
[[زٲژ:بؠمٲرؠ]]
nuzkuel6bxmxr9zp9z995es6eni79rb
142836
142824
2026-06-25T18:00:20Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142836
wikitext
text/x-wiki
{{Infobox medical condition/Wikidata}}
'''پارکنسن''' بؠمٲرؠ (یا صرف پارکنسنز،) چھِ [[مَرکزی نٲرَن ہُنٛد نِظام]] اَکھ طویل مدتی انحطاطٕچ بؠمٲر یۄس بنیٲدی طور موٹر سسٹمس مُتٲثِر کَران۔ علامات چھِ عموٗمَن وارٕ وارٕ ظٲہِر گژھَان۔ بؠمارِ ہِنٛدِس شُروٗعاتس مَنٛز چھِ سارِوٕے کھۄتہٕ واضح علامتہٕ لرزانٕن، سخٕت، حرکتَس مَنٛز سست رفتار، تہٕ پکنَس مَنٛز دُشوٲری۔ سوچ تہٕ طرز عملک مسایل تہٕ ہیٚکن گژھتھ۔ بؠمارِ ہِنٛدِس ترقی یافتہٕ مرحلَس مَنٛز چھُ ڈیمنشیا عام گژھان۔ ڈپریشن تہٕ اضطراب تہٕ چھُ عام، یُس PD والن اکہٕ تہایی کھۄتہٕ زیٛادٕ لوکن مَنٛز گژھان چھُ۔ پارکنسنز کہ بیمارٕچ وجہ چھنہٕ معلوم، مگر خیال چھ یوان کَرنہٕ زِ اَتھ مَنٛز چھ جینیٲتی تہٕ ماحولیٲتی دۄشوی وجہ شٲمل۔<ref name="Lancet2015">{{Cite journal|vauthors=Kalia LV, Lang AE|title=Parkinson's disease|journal=Lancet|volume=386|issue=9996|pages=896–912|date=August 2015|pmid=25904081|doi=10.1016/s0140-6736(14)61393-3}}</ref> یمن خاندانن ہنٛدؠ رکن مُتٲثِر چھ تمن چھ پاٛز ٕ بیمار گژھنک امکان زیٛادٕ آسان۔<ref name="Lancet2015" /> تمن لوکن مَنٛز تہٕ چھ خطرٕ زیٛادٕ آسان یمن بعض کیٚمؠ مار دواہن ہنٛد سامنہٕ چھ یوان تہٕ یمن مَنٛز یمن گۄڈٕ سرٕ چوٹ چھ آمتؠ، ییلہٕ زن تمباکو تمباکو نوشی کرن وٲلؠ تہٕ [[کافی|کافی۔]] یا [[چاے|چائے۔]] پینہٕ والن مَنٛز چھ خطرٕ کم آسان۔<ref name="Lancet2015" /><ref>{{Cite journal|vauthors=Barranco Quintana JL, Allam MF, Del Castillo AS, Navajas RF|title=Parkinson's disease and tea: a quantitative review|journal=Journal of the American College of Nutrition|volume=28|issue=1|pages=1–6|date=February 2009|pmid=19571153|doi=10.1080/07315724.2009.10719754}}</ref> بیمٲر ہٕنٛدیٚن موٹر علاماتن ہنٛد نٔتیٖجہٕ چھ سبسٹینٹیا نگراہس مَنٛز خلین ہنٛد مرنہٕ سٟتؠ آسان، یس مڈ برینک اَکھ خطہٕ چھ۔<ref name="NIH2016">{{ویب حَوالہٕ|title=Parkinson's Disease Information Page|url=https://www.ninds.nih.gov/Disorders/All-Disorders/Parkinsons-Disease-Information-Page|website=NINDS|access-date=18 July 2016|date=30 June 2016|url-status=live|archive-date=4 January 2017|archive-url=https://web.archive.org/web/20170104201403/http://www.ninds.nih.gov/Disorders/All-Disorders/Parkinsons-Disease-Information-Page}}</ref> ایمکہ نتیجس مَنٛز چھ نہٕ دماغ کہ اَتھ حصس مَنٛز کٲفی [[ڈوپاماین|ڈوپامائن]]<ref name="NIH2016" /> اَمہِ خلیہ کہ مرنٕچ وجہ چھ نہٕ کم سمجھنہٕ یوان، مگر اَتھ مَنٛز چھ نیورسن مَنٛز لیوی اجسامن مَنٛز پروٹین تعمیر شٲمل۔<ref name="Lancet2015" /> عام معملن ہنٛز تشخیص چھ بنیٲدی طور پٲنٹھ علامتن پؠٹھ مبنی آسان، یَتھ مَنٛز نیورو امیجنگ ہی ٹیسٹ باقی بیمارن مسترد کرنہٕ خٲطرٕ اِستِمال چھ یوان کرنہٕ۔<ref name="NIH2016" />
پارکنسنز کہ بیمارک چھنہٕ کانٛہہ یَلاج۔<ref name="NIH2016" /> علاجک مقصد چھ علامات بہتر بناون۔ <ref name="NIH2016" /><ref name="pmid15172778">{{Cite journal|vauthors=Samii A, Nutt JG, Ransom BR|title=Parkinson's disease|journal=Lancet|volume=363|issue=9423|pages=1783–93|date=May 2004|pmid=15172778|doi=10.1016/S0140-6736(04)16305-8|url=https://zenodo.org/record/1259791|access-date=2 August 2020|archive-date=29 January 2022|archive-url=https://web.archive.org/web/20220129053144/https://zenodo.org/record/1259791|url-status=live}}</ref> ابتدٲیی یَلاج چھ عام طور پٲٹھؠ اینٹیپارکنسن دواہ لیوڈوپا (L-DOPA) سٟتؠ گژھان تہٕ اَمہِ پتہٕ چھ ڈوپاماین ایگونسٹ آسان ییٚلہ لیوڈوپا کم اثر دار بنان چھ۔<ref name="Sv2016">{{Cite journal|vauthors=Sveinbjornsdottir S|title=The clinical symptoms of Parkinson's disease|journal=Journal of Neurochemistry|volume=139 Suppl 1|pages=318–324|date=October 2016|pmid=27401947|doi=10.1111/jnc.13691|doi-access=free}}</ref> یَتھ کٔنؠ ز بیمار چھ بڑان تہٕ نیوران چھ مسلسل ختم گژھان، یم دَوا چھ کم اثر دار آسان، ییلہٕ زن اکی وقتہٕ چھ غٲر ارادی طور پٲنٹھ حرکت کرن وٲل پیچیدگی پٲدٕ کران۔<ref name="Sv2016" /> خوراک تہٕ بحالی ہنٛز کنہہ شکلن چھ علامات بہتر بناونس مَنٛز کنہہ تاثیر ظٲہر کٔرمت۔<ref name="pmid19691125">{{Cite journal|vauthors=Barichella M, Cereda E, Pezzoli G|title=Major nutritional issues in the management of Parkinson's disease|journal=Movement Disorders|volume=24|issue=13|pages=1881–92|date=October 2009|pmid=19691125|doi=10.1002/mds.22705|hdl-access=free}}</ref><ref name="Neuro2011">{{Cite journal|vauthors=Ahlskog JE|title=Does vigorous exercise have a neuroprotective effect in Parkinson disease?|journal=Neurology|volume=77|issue=3|pages=288–94|date=July 2011|pmid=21768599|pmc=3136051|doi=10.1212/wnl.0b013e318225ab66}}</ref> سرٛن دماغچ محرک خاطرٕ مایکرو الیکٹروڈ تھونہٕ خاطرٕ چھ جراحی ہنٛد اِستِمال شدید معاملن مَنٛز موٹر علامات کم کرنہٕ خاطرٕ یوان کرنہٕ یتہٕ دواہ چھ غیر موثر آسان۔<ref name="NIH2016" /> پی ڈی ہٕنٛدیٚن حرکتس سٟتؠ متعلق علاماتن ہٕنٛد علاجک ثبوت، یَتھ کٔنؠ ز نؠسک مَنٛز خلل تہٕ جذبٲتی مسلہٕ، چھ کم مضبوٗط۔<ref name="Lancet2015" />
2015 مَنٛز، پی ڈی ین کوٚر 6.2 ملین افراد مُتٲثِر تہٕ اَمہِ کس نتیجس مَنٛز گیہٕ عالمی سطحس پؠٹھ تَقریٖبَن 117,400 افراد ہلاک۔<ref name="GBD2015Pre">{{Cite journal|title=Global, regional, and national incidence, prevalence, and years lived with disability for 310 diseases and injuries, 1990–2015: a systematic analysis for the Global Burden of Disease Study 2015|journal=Lancet|volume=388|issue=10053|pages=1545–1602|date=October 2016|pmid=27733282|pmc=5055577|doi=10.1016/S0140-6736(16)31678-6|last=GBD 2015 Disease Injury Incidence Prevalence Collaborators}}</ref><ref name="GBD2015De">{{Cite journal|title=Global, regional, and national life expectancy, all-cause mortality, and cause-specific mortality for 249 causes of death, 1980-2015: a systematic analysis for the Global Burden of Disease Study 2015|journal=Lancet|volume=388|issue=10053|pages=1459–1544|date=October 2016|pmid=27733281|pmc=5388903|doi=10.1016/s0140-6736(16)31012-1|last=GBD 2015 Mortality Causes of Death Collaborators}}</ref> پارکنسنزٕچ بؠمار چھےٚ عام طور 60 وہر کھۄتہٕ زیٛادٕ وٲنٛسہ لوکن مَنٛز گژھان، یمو منٛزٕ تَقریٖبَن اَکھ فیصد چھ متٲثر گژھان۔<ref name="NIH2016" /><ref name="Car2016">{{کِتاب حَوالہٕ|vauthors=Carroll WM|title=International Neurology|date=2016|publisher=John Wiley & Sons|isbn=9781118777367|page=188|url=https://books.google.com/books?id=mRl6DAAAQBAJ&pg=PA188|url-status=live|archive-url=https://web.archive.org/web/20170908154209/https://books.google.com/books?id=mRl6DAAAQBAJ&pg=PA188|archive-date=8 September 2017}}</ref> مرد چھ اکثر زنانن ہنٛدس مقابلس مَنٛز تَقریٖبَن 3:2 کس تناسبس مَنٛز زیٛادٕ مُتٲثِر آسان۔<ref name="Lancet2015" /> ییلہ یہِ 50 وٕہٕر برونٛہہ چھ لوکن مَنٛز وچھنہٕ یوان تہٕ اَتھ چھ ابتدٲیی آغاز PD ونان۔<ref>{{کِتاب حَوالہٕ|last=Mosley|first=Anthony D.|title=The encyclopedia of Parkinson's disease|date=2010|publisher=Facts on File|location=New York|isbn=9781438127491|page=89|edition=2nd|url=https://books.google.com/books?id=tE6VgburpxkC&pg=PA89|url-status=live|archive-url=https://web.archive.org/web/20170908154209/https://books.google.com/books?id=tE6VgburpxkC&pg=PA89|archive-date=8 September 2017}}</ref> تشخیص پتہٕ چھ اوسط زندگی ہنٛز توقع 7 پؠٹھ 15 ورین درمیان۔<ref name="Sv2016" /> اَمہِ بیمارک ناو چھ انگریز ڈاکٹر جیمز پارکنسن ناو دینہٕ آمتؠ، یمو 1817 مَنٛز شیکنگ فالجک گۄڈنُیٛک تفصیلی بیان شایَع کوٚر۔<ref name="An Essay on the Shaking Palsy">{{کِتاب حَوالہٕ|first=James|last=Parkinson|date=1817|publisher=Whittingham and Roland for Sherwood, Neely, and Jones|location=London|url=http://www.gutenberg.org/files/23777/23777-h/23777-h.htm|title=An Essay on the Shaking Palsy|url-status=live|archive-url=https://web.archive.org/web/20150924210730/http://www.gutenberg.org/files/23777/23777-h/23777-h.htm|archive-date=24 September 2015}}</ref><ref>{{Cite journal|vauthors=Shulman JM, De Jager PL, Feany MB|title=Parkinson's disease: genetics and pathogenesis|journal=Annual Review of Pathology|volume=6|pages=193–222|date=February 2011|pmid=21034221|doi=10.1146/annurev-pathol-011110-130242|orig-year=25 October 2010|url=https://semanticscholar.org/paper/857d00026b199a33e5aa162063adc35594f26f7c|access-date=2 August 2020|archive-date=28 August 2021|archive-url=https://web.archive.org/web/20210828205458/https://www.semanticscholar.org/paper/Parkinson%27s-disease%3A-genetics-and-pathogenesis.-Shulman-Jager/857d00026b199a33e5aa162063adc35594f26f7c|url-status=live}}</ref> عوٲمی آگٲزی ہنٛز مہمن مَنٛز چھ پارکنسنز کہ عالمی دوہ (جیمز پارکنسن سٟنٛد زایہٕ دوہ، 11 اپریل) تہٕ بیمار ہِنٛز علامت کہ طورس پؠٹھ وزل [[گۄلال|ٹولپ]] اِستِمال شٲمل۔<ref name="pmid18175393">{{Cite journal|vauthors=Lees AJ|title=Unresolved issues relating to the shaking palsy on the celebration of James Parkinson's 250th birthday|journal=Movement Disorders|volume=22 Suppl 17|issue=Suppl 17|pages=S327–34|date=September 2007|pmid=18175393|doi=10.1002/mds.21684}}</ref> پارکنسنز سٟتؠ مُتٲثِر گژھن والن لوکن یمو اَمہِ حالت کس بارس مَنٛز عوامچ آگہی مَنٛز اضافہٕ چھ کوٚرمت تمن مَنٛز چھ باکسنگ لیجنڈ محمد علی اداکار مایکل جے فاکس اولمپک سایکل سوار ڈیوس فنی تہٕ اداکار ایلن الڈا شٲمل۔<ref name="MJF_TIME">{{Cite news|url=http://www.time.com/time/specials/2007/time100/article/0,28804,1595326_1615754_1615882,00.html|title=Michael J. Fox|date=3 May 2007|last=Davis P|journal=The TIME 100|publisher=[[Time (magazine)|Time]]|accessdate=2 April 2011|archiveurl=https://web.archive.org/web/20110425013526/http://www.time.com/time/specials/2007/time100/article/0,28804,1595326_1615754_1615882,00.html|archivedate=25 April 2011}}</ref><ref name="Mac2008">{{Cite news|last=Macur|first=Juliet|title=For the Phinney Family, a Dream and a Challenge|url=https://www.nytimes.com/2008/03/26/sports/othersports/26cycling.html?pagewanted=all&_r=0|journal=The New York Times|accessdate=25 May 2013|date=26 March 2008|quote=About 1.5 million Americans have received a diagnosis of Parkinson's disease, but only 5 to 10 percent learn of it before age 40, according to the National Parkinson Foundation. Davis Phinney was among the few.|archiveurl=https://web.archive.org/web/20141106025145/http://www.nytimes.com/2008/03/26/sports/othersports/26cycling.html?pagewanted=all&_r=0|archivedate=6 November 2014}}</ref><ref name="Ali_NN_comment">{{Cite journal|url=http://www.aan.com/elibrary/neurologynow/?event=home.showArticle&id=ovid.com:/bib/ovftdb/01222928-200602020-00003|title=Muhammad Ali's Message: Keep Moving Forward|date=April 2006|journal=Neurology Now|last=Brey RL|volume=2|issue=2|page=8|access-date=2 April 2011|doi=10.1097/01222928-200602020-00003|url-status=dead|archive-url=https://web.archive.org/web/20110927022505/http://www.aan.com/elibrary/neurologynow/?event=home.showArticle&id=ovid.com%3A%2Fbib%2Fovftdb%2F01222928-200602020-00003|archive-date=27 September 2011}}</ref><ref>{{Cite news|last=Alltucker|first=Ken|title=Alan Alda has Parkinson's disease: Here are 5 things you should know|url=https://www.usatoday.com/story/news/nation/2018/07/31/alan-alda-has-parkinsons-disease-5-things-know/871265002/|accessdate=6 May 2019|agency=USA Today|date=31 July 2018|archivedate=6 May 2019|archiveurl=https://web.archive.org/web/20190506212143/https://www.usatoday.com/story/news/nation/2018/07/31/alan-alda-has-parkinsons-disease-5-things-know/871265002/}}</ref>
== حَوالہٕ ==
[[Category:Translated from MDWiki]]
[[زٲژ:بؠمٲرؠ]]
kd85tv2kkr6ncw92pm3lq8ffqd2wzg7
اومیپرازول
0
20281
142845
142785
2026-06-25T18:01:05Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142845
wikitext
text/x-wiki
{{Infobox drug/Wikidata}}
'''اومیپرازول''' یس پرٛ'''پریلوسیک''' تہٕ لوسیک برانڈ '''لاوق''' تحت کٕنٛنہٕ چھ یوان، چھ اَکھ دَوا یُس گیسٹرو ایسوفیگل ریفلکس بیماری (جی ای آر ڈی پیپٹک السر بیماری تہٕ زولنگر-ایلیسن سنڈروم کِس یَلاجس مَنٛز چھ اِستِمال گژھان۔<ref name="AHFS2015">{{ویب حَوالہٕ|title=Omeprazole|url=https://www.drugs.com/monograph/omeprazole.html|publisher=The American Society of Health-System Pharmacists|access-date=October 21, 2018|archive-date=19 February 2011|archive-url=https://web.archive.org/web/20110219135631/http://www.drugs.com/monograph/omeprazole.html|url-status=live}}</ref> یہِ چھ تمن لوٗکن مَنٛز معدے کہ بالٲیی خونس رکاونہٕ خٲطرٕ تہٕ اِستِمال یوان کرنہٕ یمن زیٛادٕ خطرٕ چھ۔<ref name="AHFS2015" /> اومیپرازول چھ اَکھ [[پروٹون پمپ انفیکٹر]] (پی پی آیی) تہٕ امیک اثر چھ باقی پی پی آی یس ہوی۔<ref name="TI2016">{{ویب حَوالہٕ|title=[99] Comparative effectiveness of proton pump inhibitors {{!}} Therapeutics Initiative|url=http://www.ti.ubc.ca/2016/06/28/99-comparative-effectiveness-proton-pump-inhibitors/|access-date=14 July 2016|date=28 June 2016|archive-date=30 October 2020|archive-url=https://web.archive.org/web/20201030063031/https://www.ti.ubc.ca/2016/06/28/99-comparative-effectiveness-proton-pump-inhibitors/|url-status=live}}</ref> یہِ ہیٚکو ٲس ذٔریع یا رگس مَنٛز انجیکشن کہ ذٔریع نتھ۔<ref name="AHFS2015" /><ref name="UK2016">{{ویب حَوالہٕ|title=Omeprazole 40 mg Powder for Solution for Infusion|url=https://www.medicines.org.uk/emc/medicine/25259|website=EMC|access-date=October 21, 2018|date=February 10, 2016|url-status=live|archive-url=https://web.archive.org/web/20160407193540/https://www.medicines.org.uk/emc/medicine/25259|archive-date=April 7, 2016}}</ref>
عام ضمنی اثراتس مَنٛز چھ متلی، الٹی، سردرد، پیٹٕچ دگ، تہٕ آنتن مَنٛز گیسس مَنٛز اضافہٕ شٲمل۔<ref name="AHFS2015" /> سنگین مضر اثراتس مَنٛز چھ کلسٹریڈیم ڈفیسیل کولایٹس [[نمونیا]] خطرٕ بڑن، ہڈی پھٹنا خطرٕ، تہٕ معدےک سرطان ماسک کرنک امکان شٲمل۔<ref name="AHFS2015" /> یہِ چھنہٕ واضح ز یہِ چھا حمل۔ مَنٛز اِستِمال خٲطرٕ مۄحفوٗظ۔<ref name="AHFS2015" /> یہِ چھ پیٹ کہ تیزابٕچ ریلیز روکتھ کٲم کران۔<ref name="AHFS2015" />
اومیپرازول آو 1978 مَنٛز پیٹنٹ کرنہٕ، تہٕ 1988 مَنٛز آو طبی اِستِمال خٲطرٕ منظور کرنہٕ۔<ref>{{کِتاب حَوالہٕ|last=Fischer|first=Jnos|last2=Ganellin|first2=C. Robin|title=Analogue-based Drug Discovery|date=2006|publisher=John Wiley & Sons|isbn=9783527607495|page=445|url=https://books.google.com/books?id=FjKfqkaKkAAC&pg=PA445|language=en|access-date=29 June 2020|archive-date=3 August 2020|archive-url=https://web.archive.org/web/20200803230101/https://books.google.com/books?id=FjKfqkaKkAAC&pg=PA445|url-status=live}}</ref> یہِ چھ ورلڈ ہیلتھ آرگنایزیشنس (ڈبلیو ایچ او) ضۆروٗری ادویاتک فہرستس مَنٛز شٲمل۔<ref name="WHO21st">{{کِتاب حَوالہٕ|vauthors=((World Health Organization))|title=World Health Organization model list of essential medicines: 21st list 2019|year=2019|hdl=10665/325771|author-link=World Health Organization|publisher=World Health Organization|location=Geneva|id=WHO/MVP/EMP/IAU/2019.06. License: CC BY-NC-SA 3.0 IGO|hdl-access=free}}</ref> یہِ چھ عام دَوا۔ کس طورس پیٚٹھ دستیاب۔<ref name="AHFS2015" /> 2014 ہس تام [[ترقی پذیر دنیا]] مَنٛز تھوک قٟمَتھ چھ 0.01 امریکی ڈالر پؠٹھ 0.07 امریکی ڈالر فی ڈوز۔ ریاستہاے متحدہس مَنٛز، چھ امیک اوسط قٟمَتھ 0.5 امریکی ڈالر فی گولی۔<ref name="ref1">{{ویب حَوالہٕ|title=NADAC as of 2016-11-16 Data.Medicaid.gov|url=https://data.medicaid.gov/Drug-Prices/NADAC-as-of-2016-11-16/dyki-3gk4|publisher=Centers for Medicare and Medicaid Services|url-status=live|archive-url=https://web.archive.org/web/20161117144955/https://data.medicaid.gov/Drug-Prices/NADAC-as-of-2016-11-16/dyki-3gk4|archive-date=November 17, 2016|access-date=October 21, 2018}} {{Webarchive|url=https://web.archive.org/web/20161117144955/https://data.medicaid.gov/Drug-Prices/NADAC-as-of-2016-11-16/dyki-3gk4 |date=2016-11-17 }}</ref> 2017 مَنٛز، اوس یہِ ریاستہاے متحدس مَنٛز سٔتم سارِوٕے کھۄتہٕ زیٛادٕ عام طور پٲنٹھ تجویز کرنہٕ آمت دَوا، یَتھ مَنٛز 58 ملین کھۄتہٕ زیٛادٕ نسخہٕ ٲس آمت دینہٕ۔<ref name"ref2"="">{{ویب حَوالہٕ|title=The Top 300 of 2020|website=ClinCalc|date=23 December 2019|url=https://clincalc.com/DrugStats/Top300Drugs.aspx|access-date=27 February 2020|archive-date=12 February 2021|archive-url=https://web.archive.org/web/20210212142534/https://clincalc.com/DrugStats/Top300Drugs.aspx|url-status=live}}</ref><ref name="ref3">{{ویب حَوالہٕ|title=Omeprazole - Drug Usage Statistics, ClinCalc DrugStats Database|website=ClinCalc|date=23 December 2019|url=https://clincalc.com/DrugStats/Drugs/Omeprazole|access-date=27 February 2020|archive-date=28 February 2020|archive-url=https://web.archive.org/web/20200228060553/https://clincalc.com/DrugStats/Drugs/Omeprazole|url-status=live}}</ref> یہٕ چھ ریاستہاے متحدس مَنٛز نسخہٕ بغٲر تہٕ دستیاب۔<ref>{{ویب حَوالہٕ|last=Research|first=Center for Drug Evaluation and|title=Questions and Answers on Prilosec OTC (omeprazole)|url=https://www.fda.gov/about-fda/center-drug-evaluation-and-research-cder/questions-and-answers-prilosec-otc-omeprazole|website=FDA|access-date=2 March 2020|date=3 November 2018|archive-date=28 August 2021|archive-url=https://web.archive.org/web/20210828195503/https://www.fda.gov/about-fda/center-drug-evaluation-and-research-cder/questions-and-answers-prilosec-otc-omeprazole|url-status=live}}</ref>
== حَوالہٕ ==
<references />
[[Category:Translated from MDWiki]]
0h8bqfxjm6gvfwil2ac0cnccv8ba169
ہایڈروسیفلس
0
20379
142887
142421
2026-06-25T18:04:35Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142887
wikitext
text/x-wiki
{{Infobox medical condition/Wikidata}}
ہایڈرو سیفلس چھِ اَکھ یِژھ حالت یَتھ مَنٛز [[دؠماغ|دؠماغس]] مَنٛز دماغی سپاینل فلیوڈ (سی ایس ایف) جمع گژھان چھُ۔<ref name="NIH2016">{{ویب حَوالہٕ|url=http://www.ninds.nih.gov/disorders/hydrocephalus/detail_hydrocephalus.htm|title=Hydrocephalus Fact Sheet|date=April 5, 2016|website=NINDS|archive-url=https://web.archive.org/web/20160727231854/http://www.ninds.nih.gov/disorders/hydrocephalus/detail_hydrocephalus.htm|archive-date=27 July 2016|url-status=live|access-date=5 September 2016}}</ref> امہٕ سٟتؠ چھُ عام طور پٲنٹھ کھوپرٕ اندر دباو بڑان۔ بُزرگ لوٗکَن ہیٚکَن سر دَگ، دۄگنہٕ گاش ، خراب توازن، پیشاب ہُنٛد بے قاعدگی، شخصیتَس مَنٛز تبدیلی یا ذہنی خرٲبی ٲسِتھ۔ بچن مَنٛز ہیکو یہِ کلہٕ کِس سایزس مَنٛز تیزی سان اضافہٕ کِس طورس پؠٹھ وُچھِتھ ۔ باقٕے عَلامَتن مَنٛز ہیٚکہِ اُلٹی، نیٚندٕر، دورٕ تہٕ أچھن بۄن کُن اِشارٕ کَرُن شٲمِل ٲسِتھ۔<ref name="NIH2016" />
ہایڈرو سیفلس ہیکہِ زینہٕ کہِ خرٲبی کہِ وجہ سٟتؠ گژھِتھ یا پتہٕ زندگی مَنٛز حٲصل گژھِتھ<ref name="NIH2016" /> وابستہٕ زینہٕ وٲلؠ نۄقصَن مَنٛز چھِ نیورل ٹیوب خرٲبی تہٕ تِم شٲمِل یِمَن ہٕنٛدِس نٔتیٖجس مَنٛز ایکویڈکٹل سٹینوسس۔<ref name="NIH2016" /><ref>{{Cite journal|vauthors=Kahle KT, Kulkarni AV, Limbrick DD, Warf BC|title=Hydrocephalus in children|journal=[[The Lancet]]|volume=387|issue=10020|pages=788–99|date=February 2016|pmid=26256071|doi=10.1016/s0140-6736(15)60694-8}}</ref> باقٕے وجوٗہاتن مَنٛز چھِ میننجایٹس، دماغی ٹیومر، دماغی زخم، انٹرا وینٹریکولر ہیمرج، تہٕ سباراکنویڈ ہیمرج شٲمِل۔ ہایڈرو سیفلسٕک ژور قٕسٕم چھِ کتھ باتھ، غٲر مواصلات، ایکس ویکیو، تہٕ عام دباو۔ تشخیٖص چھِ عموٗمَن جسمٲنی معاینہٕ تہٕ طبی امیجنگ سٟتؠ کرنہٕ یِوان۔<ref name="NIH2016" />
ہایڈروسیفلسک یَلاج چھ عام طور پانٹھ [[شونٹ سسٹم|شنٛٹ سسٹم]] کہ جراحی ہنٛد ذریعہٕ یوان کرنہٕ۔<ref name="NIH2016" /> اَکھ طریقہٕ کار یَتھ ترٛیٚیم وینٹریکولوسٹومی چھ ونان چھ کیٚنٛہہ لکن مَنٛز اَکھ اختیار۔<ref name="NIH2016" /> شنٛٹن سٟتؠ گژھن والیٚن پیچیدگین مَنٛز ہیٚکہ حدٕ کھۄتہٕ زیٛادٕ نکاسی، کم نکاسیٚن، میکانکی ناکٲمی، انفیکشن یا رکاوٹ شٲمل ٲستھ۔<ref name="NIH2016" /> امہٕ خٲطرٕ چھ متبادلچ ضرورت۔ <ref name="NIH2016" /> نتٲیج چھ متغیر، مگر واریاہ لوکھ چھ شنٛٹس سٟتؠ معمولچ زندگی گزارن۔<ref name="NIH2016" /> علاجہٕ بغٲر ہیکہ موت یا مستقل معذوری ہند شکار گژھتھ۔<ref name="NIH2016" />
فی 1,000 نوزاییٖدٕ بچن مَنٛز چھ تَقریٖبَن 1 پؠٹھ 2 ہایڈروسیفلس آسان۔<ref name="NIH2016" /><ref name="Stev2003">{{کِتاب حَوالہٕ|last=Stevenson|first=David K.|last2=Benitz|first2=William E.|title=Fetal and Neonatal Brain Injury: Mechanisms, Management and the Risks of Practice|date=2003|publisher=[[Cambridge University Press]]|location=Cambridge|isbn=9780521806916|page=117|url=https://books.google.com/books?id=RuekFAj_tIAC&pg=PA117|url-status=live|archive-url=https://web.archive.org/web/20161221212406/https://books.google.com/books?id=RuekFAj_tIAC&pg=PA117|archive-date=2016-12-21}}</ref> ترقی پذیر دُنؠیا مَنٛز چھ شرح زیٛادٕ آسان۔<ref name="Ab2012" /> عام دباو ہایڈروسیفلسک تخمینہٕ چھ فی 100,000 لوکن مَنٛز تَقریٖبَن 5 افراد مُتٲثِر کران، عمر سٟتؠ سٟتؠ چھ شرح بڑان۔<ref>{{کِتاب حَوالہٕ|last=Ferri|first=Fred F.|title=Ferri's Clinical Advisor 2017: 5 Books in 1|date=2016|publisher=Elsevier Health Sciences|isbn=9780323448383|page=621|url=https://books.google.com/books?id=rRhCDAAAQBAJ&pg=PA621|url-status=live|archive-url=https://web.archive.org/web/20161221201502/https://books.google.com/books?id=rRhCDAAAQBAJ&pg=PA621|archive-date=2016-12-21}}</ref> ہایڈروسیفلسٕچ وضاحت چھےٚ ہپپوکریٹس کہ طرفہٕ 2,000 وٕریو برونٛہہ گٲی شۆروٗع۔<ref name="Ab2012">{{کِتاب حَوالہٕ|first=Richard G.|last=Ellenbogen|first2=Saleem I.|last2=Abdulrauf|first3=Laligam N.|last3=Sekhar|title=Principles of Neurological Surgery|url=https://books.google.com/books?id=vMtRtuz5mnwC&pg=PA105|year=2012|publisher=Elsevier Health Sciences|isbn=978-1-4377-0701-4|pages=105|access-date=2016-09-23|archive-date=2021-04-30|archive-url=https://web.archive.org/web/20210430075026/https://books.google.com/books?id=vMtRtuz5mnwC&pg=PA105|url-status=live}}</ref> لفظ ''ہایڈروسیفیلس'' چھ یونٲنی ὕδωρ یمیوک مطلب چھ 'آب' تہٕ κεφαλή یمیوک معنی چھ 'سر'۔<ref name="Dor2000">{{کِتاب حَوالہٕ|title=Dorland's electronic medical dictionary.|date=2000|publisher=W.B. Saunders Co|isbn=9780721694931|edition=29th}}</ref>
== حَوالہٕ ==
<references />
[[Category:Translated from MDWiki]]
mwk8izmg7eehls6efbevsch69h66ghz
جامع مَشیٖد، شُپؠیَن
0
21138
142901
133635
2026-06-25T23:29:22Z
InternetArchiveBot
8158
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
142901
wikitext
text/x-wiki
{{Infobox religious building
| name = جامع مَشیٖد
| image = Jamia masjid shopian.jpg
| caption = مشیٖد ہنٛد نظار
| image_upright = 1.4
| location = ٹکہٕ محلہٕ, [[شُپؠیَن]], [[جۆم تہٕ کٔشیٖر (مَرکَزی عَلاقہٕ)]]
| geo = {{Coord|34.098352|N|74.809180|E|region:IN-JK_type:landmark|format=dms|display=it}}
| country = [[ہِندوستان]]
| religious_affiliation = [[اِسلام]]
| tradition =
| status =
| functional_status = ییٚلہٕ
| architect =
| architecture_type = {{nowrap|مَشیٖد ہِنٛز تعٲمیٖر}}
| architecture_style = مۄغل تعٲمیٖر
| year_completed = {{ubl|{{nowrap|مۄغل دور {{small|(گۄڈٕ structure)}}}}|1953 CE {{small|(rebuild)}}}}
| map_type = India Jammu and Kashmir
| map_relief = yes
| map_size = 250
| map_caption = مشیٖد ہِنٛز جاے [[جۆم تہٕ کٔشیٖر (مَرکَزی عَلاقہٕ)]]
| construction_cost =
| capacity =
| length =
| width =
| dome_quantity =
| minaret_quantity =
| minaret_height =
| materials = [[دیودار]], کنہِ, سیرِ
}}
'''جمعہ مسجد''' چھِ جمعہ دۄہ چہ اَکھ تٲریٖخی مسجد، یوٚسہٕ [[ہِندوستان|ہندوستان۔]] کس مرکزی زیر انتظام علاقہٕ [[جۆم تہٕ کٔشیٖر (مَرکَزی عَلاقہٕ)|جموں و کشمیر]] کس [[شُپؠیَن]] مَنٛز واقعہٕ چھ۔ مسجد ٲس مغل دورس مَنٛز بناونہٕ آمٕژ تہٕ یہِ چھےٚ أنٛدؠ تہٕ نیبرٕ دۄشوٕنی طرفہٕ واریاہ خوٗبصوٗرت۔ یہِ چھ [[شُپؠیَن ضِلہٕ]] چہ بہتٔریٖن مَشیٖدن مَنٛز اَکھ ماننہٕ یوان۔<ref>{{ویب حَوالہٕ|date=2023-11-30|title=Jamia Masjid Shopian|url=https://www.yemberzal.in/2023/02/jamia-masjid-shopian.html|access-date=2023-12-20|language=en}}</ref><ref name="radio">{{ویب حَوالہٕ|date=2021-06-14|title=JAMIA MASJID: SHOPIAN → Kashmir|url=https://www.radiochinar.in/jamia-masjid-shopian/|access-date=2023-12-20|website=Radio Chinar|language=en|archive-date=2023-11-15|archive-url=https://web.archive.org/web/20231115020422/https://www.radiochinar.in/jamia-masjid-shopian/|url-status=dead}}</ref>
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ:شُپؠ یَن ضِلہٕ]]
qpydpo2sagfnxgozz2qd352wsnnw1xa
کَرَن جوہَر
0
22120
142847
142779
2026-06-25T18:01:15Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142847
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|noicon=Yes}}
'''کَرَن یَش جوہَر''' (پیدٲیش '''راہُل کُمار جوہَر''') 25 میی 1972 اکثر غٲر رسمی طورس پؠٹھ KJo کہ ناوٕ سٟتؠ زاننہٕ چھ یوان، چھ اَکھ ہِندوستٲنؠ فلمساز، پروڈیوسر تہٕ ٹیلی وِجَن شخصیت یوس بنیٲدی طورس پؠٹھ [[بٲلی وُڈ|ہندی سنیما]] ہس مَنٛز کٲم چھ کران۔<ref>{{ویب حَوالہٕ|title=KARAN YASH JOHAR {{!}} DIN : 00013096|url=https://www.indiafilings.com/search/karan-yash-johar-din-00013096|access-date=2024-11-08|website=IndiaFilings|language=en}}</ref><ref name=":0">{{ویب حَوالہٕ|title=KJo meets Kareena on sets of Heroine|url=http://www.bollywoodhungama.com/more/news/view/id/1449536|url-status=dead|archive-url=https://web.archive.org/web/20120611024124/http://www.bollywoodhungama.com/more/news/view/id/1449536|archive-date=11 June 2012|access-date=8 June 2012|website=[[Bollywood Hungama]]}}</ref> تٔمہ چھ پننہ کمپنی دھرما پروڈکشن تحت واریاہن کامیاب اداکارن تہٕ فِلِم سازن ہنٛد پیشورانہٕ زندگی شروٗع کٔرمٕژ۔ ترٛیٚیہ نیشنل فِلِم ایوارڈز تہٕ ستھ فِلِم فییَر ایوارڈز سٟتؠ واریاہ اعزازات حٲصل کرن وٲلس أمس چھ حکومت ہند طرفہٕ 2020 ہس مَنٛز [[پَدَم شِرٛی]] اعزاز دنہٕ آمت۔<ref>{{Cite news|url=https://www.indiatoday.in/movies/bollywood/story/padma-shri-for-ekta-kapoor-karan-johar-kangana-ranaut-and-adnan-sami-1640169-2020-01-25|title=Padma Shri for Ekta Kapoor, Karan Johar, Kangana Ranaut and Adnan Sami|journal=India Today|language=en|accessdate=26 January 2020|agency=Ist|archivedate=25 January 2020|archiveurl=https://web.archive.org/web/20200125223024/https://www.indiatoday.in/movies/bollywood/story/padma-shri-for-ekta-kapoor-karan-johar-kangana-ranaut-and-adnan-sami-1640169-2020-01-25}}</ref>
== حَوالہٕ ==
l0ss05ceb9798kik5icnrhdtd5ffmiw
گیم آف تھرٛونز
0
23660
142841
142793
2026-06-25T18:00:45Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142841
wikitext
text/x-wiki
{{ٹیلی وِجَن معلوٗمات ڈَبہٕ|image=File:Game of Thrones 2011 logo.svg|num_seasons=8|num_episodes=73}}
'''''گیم آف تھرٛونز''''' ([[اَنٛگریٖزی زَبان|انگریزی]]: Game of Thrones) چھِ اَکھ امریکی فنٹاسی ڈراما ٹیلی وِجَن سیریز یوس ڈیوڈ بینیوف تہٕ ڈی بی ویسن [[ایچ بی او]] خٲطرٕہ تخلیق کوٚر۔ گیم آف تھرٛونز ٹیلی وِجَن سیریز چھِ جارج مارٹن سٕنٛز ناولہ سیریز اے سونگ آف آیس اینڈ فایر پؠٹھ مبنی۔ اَتھ چھِ ٲٹھ سیزن تہٕ تُرٛستسھ قسطہٕ نشر کٔرمٕتؠ۔ ٲٹھِم سیزن یِیہِ ییٚمہِ ؤرؠ یہِ اپریلَس مَنٛز نشر کرنہٕ۔اےٚ سونٛگ آف آیس اینڈ فایر چھُ اَکھ افسانوی سیریز یُس قدیٖم زمانٕچ پوٗرٕ دُنؠیا ہاونہٕ چھُ یِوان۔ یہٕ چھُ نہٕ بنیٲدی طور اَکھ جادویی دُنؠیا، حالانکہ کنہہ غٲر نظر تہٕ جادویی کردار چھِ ہاونہٕ آمٕتؠ۔ یہِ چھُنہٕ بدسلوکی، تشدد تہٕ جنسی منظر کہِ وجہ سٟتؠ شُرؠن خٲطرٕ مُنٲسِب۔یہِ چھ ستن ناولن ہُنٛد اَکھ سلسلہٕ، یمن مَنٛز پانٛژ حالٕے شایَع گٔمٕتؠ۔ مزید زٕ ناول چھِ وُنہِ تہِ شایَع گژھن۔ ٹی وی سیریز چھِ پوشیدٕ ناولن برونٛہہ برٛۄنٛہہ گٔمٕژ۔ جارج مارٹنن دِژ ٹی وی سیریز خٲطرٕ پروڈیوسرَن غٲر مطبوعہ مواد۔<ref>{{cite magazine|title=25 of TV's best opening credit sequences|url=https://ew.com/tv/tv-best-opening-credits/?slide=6239669#6239669|access-date=May 25, 2020|magazine=[[Entertainment Weekly]]|publisher=[[Meredith Corporation]]|date=April 11, 2019|archive-url=https://web.archive.org/web/20200525202953/https://ew.com/tv/tv-best-opening-credits/?slide=6239669|archive-date=May 25, 2020}}</ref>
==کلام==
گیم آف تھرٛونز چھنہٕ صرف اَکھ دٔلیٖل، ٹی وی سیریزَن مَنٛز اداکٲری، مناظر تہٕ کلام تہِ چھِ غٲر معموٗلی۔ یہِ چھِ تٔمؠ سٕنٛدؠ کینٛہہ یادگار مکالمہٕ:
* When you play the game of thrones, you win or you die
* Any man who must say 'I am the King' is no true King
* A lion does not concern himself with the opinion of sheep
* Chaos isn't a pit۔ Chaos is a ladder
* Fear cuts deeper than swords
* In life, the monsters win
* Only a man who's been burned knows what hell is truly like
* If you think this has a happy ending, you haven't been paying attention
* A mind needs books as a sword needs a whetstone, if it is to keep its edge
* There is only one god, and His name is Death
==حَوالہٕ ==
[[زٲژ:ٹیلی وِجَن سیریٖز]]
iq3wqjaduxoqcgdyskdz4l5uv1ylwal
شان شاہِد
0
24549
142902
118559
2026-06-26T01:54:32Z
InternetArchiveBot
8158
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
142902
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''ارمُغان شاہِد''' (زامُت 27 اپریل 1971) یُس پننس سٹیج ناو '''شان شاہِد''' سٟتؠ مشہوٗر چھُ، چھِ اَکھ [[پٲکِستان|پاکستٲنؠ]] اداکار، پروڈیوسر، ماڈل، سکرین رائٹر تہٕ ہدایت کار۔<ref>{{ویب حَوالہٕ|date=30 July 2015|title=Which Pakistani Celebrities Have Dual Nationalities?|url=https://style.pk/which-pakistani-celebrities-have-dual-nationalities/|access-date=7 October 2025|archive-date=6 August 2025|archive-url=https://web.archive.org/web/20250806151603/https://style.pk/which-pakistani-celebrities-have-dual-nationalities/|url-status=dead}}</ref> شان چھُ پانس پاکِستان کین سارِوٕے کھۄتہٕ زیٛادٕ مشہوٗر اداکارو مَنٛز اَکھ قرار دُیتمت۔<ref>{{ویب حَوالہٕ|date=5 October 2014|title=Shaan Shahid: The ageless superstar|url=http://tribune.com.pk/story/769739/shaan-shahid-the-ageless-superstar/|access-date=21 September 2015|website=tribune.com.pk}}</ref><ref name="instep_1">{{Cite news|title=It's good to be the King!|url=http://jang.com.pk/thenews/may2012-weekly/nos-27-05-2012/instep/mainarticle.asp|accessdate=27 December 2014|journal=[[The News International|The News]]|archiveurl=https://web.archive.org/web/20141217231541/http://jang.com.pk/thenews/may2012-weekly/nos-27-05-2012/instep/mainarticle.asp|archivedate=17 December 2014}}</ref>
شاہن کوٚر پننہ اداکٲری ہنٛد کیریئرک آغاز 1990 مَنٛز جاوید فاجل سٕنٛز فِلِم ''بُلندی'' مَنٛز [[ریما خان|ریمہ خان]] سٟتؠ فلمی شروٗعات کٔرِتھ تہٕ 2014 ہس تام کٔر أمہ 576 فلمن مَنٛز اداکٲری، یمن مَنٛز 388 پنجابی فلمہٕ تہٕ 188 اُردوٗ فلمہٕ شٲمل چھ۔<ref>{{ویب حَوالہٕ|last=Ansari|first=Hasan|date=3 October 2014|title=Did you know? Operation O21 will be Shaan's 576th film!|url=https://tribune.com.pk/story/770886/did-you-know-operation-o21-will-be-shaans-576th-film|website=[[The Express Tribune]]|quote=To date, he has acted in 388 Punjabi films and 188 Urdu films.}}</ref>
أمہ چھِ پٲکستانس مَنٛز واریاہ اعزاز زیٖنمٕتہ یمن مَنٛز اَکھ پرائڈ آف پرفارمنس، پندہ نگار ایوارڈز پانژ لکس سٹائل ایوارڈز اَکھ پاکستان میڈیا ایوارڈ اے آر وائی فِلِم ایوارڈ شٲمل چھ۔<ref>{{ویب حَوالہٕ|date=28 April 2014|title=Shaan Shahid Best Actor for ''Waar''|url=http://www.diggvideo.com/ary-film-awards-2014-best-actor-male-shaan-for-film-waar_1a9a5ae5d.html|access-date=16 August 2014|publisher=Fashion Universe}}</ref>
شان چھِ پٲکستانس مَنٛز ساروٕے کھۄتہٕ زیٛادٕ پونٛسہٕ زینن وول فِلمی اداکار مانٛنہٕ یوان۔<ref>{{ویب حَوالہٕ|title=Shaan Shahid, Fawad Khan, Mahira Khan: Pakistan's highest paid actors|url=http://daily.bhaskar.com/news/CEL-fawad-khan-mahira-khan-the-highest-earning-pakistani-actors-4813597-PHO.html|url-status=dead|archive-url=https://web.archive.org/web/20141123062538/http://daily.bhaskar.com/news/CEL-fawad-khan-mahira-khan-the-highest-earning-pakistani-actors-4813597-PHO.html|archive-date=23 November 2014|access-date=15 August 2016}}</ref>
==اِبتدٲے زِندگی==
ارمُغان شاہِد، یُس پتہٕ شان ناوٕ زاننہٕ آو، زاو لاہورس مَنٛز ہدایت کار [[رِیاض شاہِد]] تہٕ اداکٲر [[نیٖلو]]ہس ، یٔمؠ تھیٹر، فِلِم تہٕ ٹیلی وِجنس مَنٛز کٲم کٔر۔ أمہِ سُنٛد مول اوس [[لوہوٗر|لاہورُک]] [[کٲشِرؠ مُسَلمان|کٲشِرِ نسلُک مُسلمان]]، ییٚلہِ زن أمہِ سٕنٛز موج ٲس [[پنجٲبؠ گاڈ|پنجٲبہِ]] [[عیٖسٲیِیَتھ|عیسٲیِیہ]] ییٚمہِ پتہٕ اِسلام قبوٗل کوٚر۔
==پیٚشہٕ==
===اداکار===
شانَن کٔر گۄڈٕنِچہِ لَٹہِ 1990 تھس مَنٛز سٲتھی نٔوؠ یِنہٕ واجنہِ ریما خانَس سٟتہِ بُلندی یَس سٟتہِ وُچھنہٕ۔ تنہٕ پیٚٹھٕ كٕر أمہِ [[اُردوٗ زَبان|اردوٗ]] تہٕ [[پَنٛجٲبؠ زَبان|پنجٲبہِ]] دۄشوٕنی ہِنٛزن ہتہٕ بدین فِلمن مَنٛز اداکٲری کٔر۔
===ڈائریکٹر===
أمؠ چھِ ڈائریکٹر سٕنٛدؠ پٲٹھؠ کأم تہٕ کران۔
==ذٲتی زِندگی==
أمہِ کوٚر آمیٖنہِ شان سٟتہِ خانٛدَر تہٕ یِمن چھِ ژور کورِ: بہشتہِ بریٖن شاہِد، نوٗرِیہ شاہِد، شاہبانو شاہِد، تہٕ رانیہ شاہِد۔
==حَوالہٕ==
[[زٲژ:پٲکِستٲنؠ لوٗکھ]]
[[زٲژ:کٲشِرؠ لوٗکھ]]
[[زٲژ:کٲشِرؠ مُسَلمان]]
57ki903v23rgvpsfjod6go42g2sn55m
ڈایکلیوفینک
0
24862
142843
142789
2026-06-25T18:00:55Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142843
wikitext
text/x-wiki
{{Infobox drug/Wikidata}}
'''ڈایٔیکلیوفینک''' یُس '''وولٹارین''' برانڈ ناوس تحت کٕنٛنہٕ چھُ یِوان، چھُ اَکھ اینٹی سٹیرایڈیل اینٹی سوزش دَوا (NSAID) یُس دَگ تہٕ ورم ہنٛز بیمارن ہنٛد عیلاج کرنہٕ خٲطرٕ چھُ اِستِمال یوان کرنہٕ یَتھ کٔنؠ زن گوٹھ۔<ref name="AHFS2018" /> یہِ چھُ ٲس ذٔریعہٕ نِنہٕ یوان، ریکٹلی یا انجیکشن کہ ذٔریع اِستِمال کرنہٕ یوان، یا ژمہِ پؠٹھ لگاونہٕ یوان۔<ref name="AHFS2018" /><ref name="inject">{{Cite journal|last=Chung|first=CH|title=The use of Injectable Nonsteroidal Anti-Inflammatory Drugs in Local Accident & Emergency Practice|journal=Hong Kong Journal of Emergency Medicine|date=11 December 2017|volume=9|issue=2|pages=65–71|doi=10.1177/102490790200900201}}</ref> دَگہ مَنٛز بہتری چھےٚ ٲٹھن گھنٹن تام روزان۔<ref name="AHFS2018" /> یہِ چھُ [[میٛادٕ]] کہِ مسلہٕ کم کرنٕچ کوٗششہ مَنٛز مایسوپروسٹول سٟتؠ تہِ دستیاب۔<ref name="BNF74">{{کِتاب حَوالہٕ|title=British national formulary : BNF 74|date=2017|publisher=British Medical Association|isbn=978-0857112989|pages=1033–1035|edition=74}}</ref>
عام ضمنی اثراتس مَنٛز چھ [[یڈ دَگ|یڈ دگ]]، اندرمن خون یُن، اُلٹی باسٕن، چکرٕ، [[کَلہٕ دود]] تہٕ [[ورم]] شٲمل۔<ref name="AHFS2018" /> سنگین مُضِر اثراتن مَنٛز ہؠکن دلٕچ بؠمار، فالج، بۄکوچن مسلہٕ، تہٕ میادُک زخم شٲمل ٲستھ۔<ref name="BNF74" /><ref name="AHFS2018" /> حملٕچ ترٛیٚیمس حصس مَنٛز چھنہٕ یہِ اِستِمال کرنہٕ یوان۔<ref name="AHFS2018" /> یہِ چھ ممکنہٕ طور پٲنٹھ دۄدھ دینس دوران مۄحفوٗظ۔<ref name="BNF74" /> خیال چھُ یوان کرنہٕ ز یہٕ چھ پروسٹگینڈنچ پیداوار کم کٔرِتھ کٲم کران۔<ref>{{کِتاب حَوالہٕ|title=Mosby's Drug Reference for Health Professions|date=2017|publisher=Elsevier Health Sciences|isbn=9780323566827|page=398|url=https://books.google.com/?id=KOM2DwAAQBAJ&pg=PA398|access-date=30 April 2020|archive-date=28 August 2021|archive-url=https://web.archive.org/web/20210828062140/https://books.google.com/books?id=KOM2DwAAQBAJ&pg=PA398&hl=en|url-status=live}}</ref> یہٕ چھُ سایکلوکسجنیز-1 (COX-1) تہٕ سایکلوکسجینیز-2 (COX۔ 2) دونونی بلاک کران۔<ref name="AHFS2018" />
ڈیکلوفینک اوس 1965 مَنٛز سیبا گیگیک ذریعہٕ پیٹنٹ کرنہٕ آمت۔ یہٕ آو 1988 مَنٛز ریاستہاے متحدس مَنٛز طبی استعمالس مَنٛز اننہٕ۔<ref name="AHFS2018" /><ref>{{کِتاب حَوالہٕ|last=Fischer|first=Janos|title=Analogue-based drug discovery|date=2006|publisher=Wiley-VCH|isbn=978-3527312573|page=517}}</ref> یہِ چھ [[عام دوا]] کِس طورس پیٚٹھ دستیاب۔<ref name="AHFS2018" /> ترقی پذیر دُنؠیاہس مَنٛز چھ تھوک قٟمَتھ عام طور 2015 ہس تام فی رؠتہٕ 2 امریکی ڈالر کھۄتہٕ کم۔<ref>{{ویب حَوالہٕ|title=Diclofenac Sodium|url=http://mshpriceguide.org/en/single-drug-information/?DMFId=256&searchYear=2015|website=International Medical Products Price Guide|access-date=4 December 2019|archive-date=19 August 2023|archive-url=https://web.archive.org/web/20230819121913/https://mshpriceguide.org/en/single-drug-information/?DMFId=256&searchYear=2015|url-status=dead}}</ref> ریاستہاے متحدس مَنٛز چھ اَمہِ رقمک تھوک خرچہٕ عام طور 2018 ہس تام 9 امریکی ڈالر کھۄتہٕ کم۔<ref>{{ویب حَوالہٕ|title=NADAC as of 2018-12-19|url=https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-as-of-2018-12-19/g7bs-ahj4|website=Centers for Medicare and Medicaid Services|access-date=22 December 2018|archive-date=19 December 2018|archive-url=https://web.archive.org/web/20181219230344/https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-as-of-2018-12-19/g7bs-ahj4|url-status=dead}}</ref> 2017 مَنٛز، اوس یہِ ریاستہاے متحدس مَنٛز 94 ہم سارِوٕے کھۄتہٕ زیٛادٕ عام طور پٲنٹھ تجویز کرنہٕ آمت دَوا، یَتھ مَنٛز ٲٹھ ملین کھۄتہٕ زیٛادٕ نسخہٕ ٲس۔<ref>{{ویب حَوالہٕ|title=The Top 300 of 2020|url=https://clincalc.com/DrugStats/Top300Drugs.aspx|website=ClinCalc|access-date=11 April 2020|archive-date=12 February 2021|archive-url=https://web.archive.org/web/20210212142534/https://clincalc.com/DrugStats/Top300Drugs.aspx|url-status=live}}</ref><ref>{{ویب حَوالہٕ|title=Diclofenac - Drug Usage Statistics|website=ClinCalc|url=https://clincalc.com/DrugStats/Drugs/Diclofenac|access-date=11 April 2020|archive-date=12 March 2021|archive-url=https://web.archive.org/web/20210312040710/https://clincalc.com/DrugStats/Drugs/Diclofenac|url-status=live}}</ref> یہِ چھ سوڈیم تہٕ پوٹاشیم سالٹ دۄشوٕنی ہٕنٛدس طورس پیٚٹھ دٔستیاب۔<ref name="BNF74" />
== حوالہ جات ==
<references />
[[زٲژ:Translated from MDWiki]]
4q49wmntwghia8cqlgn2k1kwpq76ye9
ڈاییکلیوفینک
0
24863
142897
119891
2026-06-25T19:27:13Z
EmausBot
1793
Fixing double redirect from [[ڈایٔیکلیوفینک]] to [[ڈایکلیوفینک]]
142897
wikitext
text/x-wiki
#REDIRECT [[ڈایکلیوفینک]]
84pd0n8azf1gr9pe5ej83ll291kxkak
ڈیکلیوفینک
0
24864
142898
119892
2026-06-25T19:27:23Z
EmausBot
1793
Fixing double redirect from [[ڈایٔیکلیوفینک]] to [[ڈایکلیوفینک]]
142898
wikitext
text/x-wiki
#REDIRECT [[ڈایکلیوفینک]]
84pd0n8azf1gr9pe5ej83ll291kxkak
رِیٛوتا کاتایوسے
0
25774
142840
142799
2026-06-25T18:00:40Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142840
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{مولوٗماتھ}}
رِیٛوتا کاتایوسے (片寄 涼太؛ پٲدٲیِش: 29 اَگَست 1994) چھُ اَکھ جاپانی گلوکار تہٕ اداکار۔ سُہ چھُ جلاوطن قبیلہٕ کین نسلن خٲطرٕ اَکھ گلوکار تہٕ امچ نمایندگی چھِ LDH کران۔
== ذٲتی زِندگی ==
1 جَنؤری 2023 مَنٛز کۆر أمؠ اداکٲر [[تاو ژُچِیا]] سٟتؠ خاندر۔ 29 اَگَست 2023 کۆر یِمو اعلان زِ یمن زاو گۄڑنُیک بچہٕ۔
== حَوالہٕ ==
[[زٲژ:جاپٲنؠ اداکار]]
[[زٲژ:جاپٲنؠ گلوکار]]
to08m7hg0w7mtwbxmo2x7r9e5ymnyoo
فرما:Infobox officeholder/Wikidata
10
26090
142832
142775
2026-06-25T16:03:28Z
آیات محراج
11062
/* */
142832
wikitext
text/x-wiki
{{Infobox|child={{{child|}}}
| bodyclass = biography vcard
| child = {{lc:{{{embed}}}}}
| above = {{Br separated entries
| 1 = {{#if:{{{honorific prefix|{{{honorific_prefix|{{{honorific-prefix|{{{pre-nominals|}}}}}}}}}}}}|<div class="honorific-prefix" style="font-size: 77%; font-weight: normal; display:inline;">{{{honorific prefix|{{{honorific_prefix|{{{honorific-prefix|{{{pre-nominals|}}}}}}}}}}}}</div>}}
| 2 = <div class="fn" style="display:inline">{{#if:{{{name|}}}|{{{name}}}|{{PAGENAMEBASE}}}}</div>
| 3 = {{#if:{{{honorific suffix|{{{honorific_suffix|{{{honorific-suffix|{{{post-nominals|}}}}}}}}}}}}|<div class="honorific-suffix" style="font-size: 77%; font-weight: normal; display:inline;">{{{honorific suffix|{{{honorific_suffix|{{{honorific-suffix|{{{post-nominals|}}}}}}}}}}}}</div>}}
}}
| abovestyle = font-size:125%; {{{abovestyle|}}}
| headerstyle = background:lavender
| image = {{#invoke:InfoboxImage |InfoboxImage |image={{#invoke:WikidataIB | getValue | rank=best |P18 |name=image |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced=no |noicon=yes | maxvals=1 |{{{image|}}}}} |size={{{image size|{{{image_size|{{{imagesize|}}}}}}}}} |sizedefault=frameless |upright={{{image_upright|1}}} |alt={{{alt|}}} |suppressplaceholder=yes}}
| caption = {{#if:{{{image|}}}|{{{caption|}}}|{{#if:{{#invoke:WikidataIB |getValue | rank=best |P18 |qid={{#invoke:WikidataIB |getQid |qid={{{qid|}}} }} |fwd={{{fwd|ALL}}} |osd=no |noicon=y |qual=P585 |qualsonly=yes| maxvals=1}}|{{#invoke:WikidataIB |getValue | rank=best |P18 |qid={{#invoke:WikidataIB |getQid |qid={{{qid|}}} }} |fwd={{{fwd|ALL}}} |osd=no |noicon=y |qual=P585 |qualsonly=yes| maxvals=1}} ہَس مَنٛز|{{{caption|}}}}}}}
<!-- POSITIONS HELD SECTION (Moved to Top) -->
| header3 = {{#if:{{{position_held|}}}{{#property:P39|from={{{qid|}}}}}|عہدٕ رٹان}}
| data4 = {{#if:{{{position_held|}}}
| {{{position_held}}}
| {{#invoke:PositionHandler|renderPositions|qid={{{qid|}}}|noicon={{{noicon|}}}}}
}}
| class4 = category
<!-- PERSONAL LIFE HEADER -->
| header5 = ذٲتی زِندگی
| label6 = مُقٲمی ناو
| data6 = {{#invoke:WikidataIB | getValue | rank=best |P1559 |name=native_name
|qid={{{qid|}}}
|suppressfields={{{suppressfields|}}}
|noicon=yes
|fetchwikidata={{{fetchwikidata|ALL}}}
|prefix='''
|postfix='''
|{{{native_name|}}}
}}
| label7 = وۄشژار
| data7 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=pronunciation |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{pronunciation|}}} }}
| label10 = پٲدٲیِش
| data10 = {{br separated entries
|1={{#invoke:WikidataIB | getValue | rank=best |P1477 |name=birth_name |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}}|{{{birth_name|}}}}}
|2={{#if:{{{birth_date|}}}|{{{birth_date|}}}|{{#invoke:WikidataIB | getValue | rank=best |P569 |name=birth_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}}|{{{birth_date|}}} |df={{{dateformat|dmy}}} }} {{#if:{{{birth_date|}}}||{{#if:{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |noicon={{{noicon|}}} |{{{death_date|}}} | df={{{dateformat|dmy}}} }}|| {{#if:{{#invoke:WikidataIB | getValue | rank=best |P569 |name=death_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{death_date|}}} | df={{{dateformat|dmy}}} }}|{{#ifexpr:{{#invoke:WikidataIB|getDatePrecision|P569|qid={{{qid|}}}}}>8|(وٲنٛس {{#expr: trunc ({{#time: Y.md}}-{{#time: Y.md|{{#titleparts:{{wikidata|property|raw|{{{qid|}}}|P569}}|1}}}})}})}}}}}}{{#ifeq:{{{refs|no}}}|yes|{{wikidata|references|normal+|{{{qid|}}}|P569}} }} }} }}
|3={{if then show |1={{#invoke:WikidataIB | getValue | rank=best |P19 |qual=P17 |name=birth_place |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} | {{{birth_place|}}} }} |2=|3=<span class="birthplace"> |4=</span>}}
}}
| label11 = بَپتِسمَہ
| data11 = {{#invoke:WikidataIB | getValue | rank=best |P1636 |name=baptised |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{baptised|}}} }}
| label12 = غٲب
| data12 = {{Br separated entries|1={{#invoke:WikidataIB | getValue | rank=best |P0 |name=disappeared_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{disappeared_date|}}} }}|2={{#invoke:WikidataIB | getValue | rank=best |P0 |name=disappeared_place |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{disappeared_place|}}} }}}}
| label13 = حثیَت
| data13 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=status |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |{{{status|{{{disappeared_status|}}}}}} }}
| label14 =وَفات
| data14 = {{br separated entries
|1={{#if:{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{death_date|}}} | df={{{dateformat|dmy}}} }}|{{#if:{{{death_date|}}}|{{{death_date|}}}|{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{death_date|}}} | df={{{dateformat|}}} }} {{#if:{{{death_date|}}}||{{#if:{{#invoke:WikidataIB | getValue | rank=best |P569 |name=birth_date |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{birth_date|}}} | df={{{dateformat|dmy}}} }}|{{#ifexpr: {{#invoke:WikidataIB |getDatePrecision |P569 |qid={{{qid|}}}}} >= 11 and {{#invoke:WikidataIB |getDatePrecision |P570 |qid={{{qid|}}}}} >= 11 | (وٲنٛسہِ {{age in years|{{#invoke:WikidataIB | getValue | rank=best |P569 |name=birth_date| maxvals=1 |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon=yes | df=ymd |{{{birth_date|}}}}}|{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date| maxvals=1 |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon=yes| df=ymd |{{{death_date|}}}}}}})|{{#ifexpr: {{#invoke:WikidataIB |getDatePrecision |P569 |qid={{{qid|}}}}} >= 9 and {{#invoke:WikidataIB |getDatePrecision |P570 |qid={{{qid|}}}}} >= 9| (وٲنٛسہِ {{age in years|{{#invoke:WikidataIB | getValue | rank=best |P569 |name=birth_date| maxvals=1 |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon=yes | df=y |{{{birth_date|}}}}}|{{#invoke:WikidataIB | getValue | rank=best |P570 |name=death_date| maxvals=1 |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon=yes| df=y |{{{death_date|}}}}}}})|}}}}}}}}}} {{#ifeq:{{{refs|no}}}|yes|{{wikidata|references|normal+|{{{qid|}}}|P570}} }}}}
|2=<!--{{#if:{{#invoke:WikidataIB | getValue | rank=best |P509 |name=death_cause |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{death_cause|}}} }}|<span class="deathcause">From {{#invoke:WikidataIB | getValue | rank=best |P509 |name=death_cause |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |noicon={{{noicon|}}} |{{{death_cause|}}} }}</span>}}-->
|3={{if then show |1={{#invoke:WikidataIB | getValue | rank=best |P20 |qual=P17 |name=death_place |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} | {{{death_place|}}} }} |2=|3=<span class="deathplace"> |4=</span>}}
}}
| label15 = مرنُک وجہ
| data15 = {{#invoke:WikidataIB |getValue |rank=best |P509 |name=death_cause |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}}|noicon={{{noicon|}}} |{{{death_cause|}}} }}
| label16 = لاش دٔریافت
| data16 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=discovered |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{body discovered|{{{body_discovered|}}}}}} }}
| label17 = {{#if:{{{burial_place|}}}|دَفن جاے|ٲخری جاے}}
| data17 = {{#if:{{{burial_place|}}}|{{Br separated entries|1={{{burial_place|}}}|2={{{burial_coordinates|}}}}}|{{Br separated entries|1={{#invoke:WikidataIB | getValue | rank=best |P119 |name=restingplace |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} | {{{resting place|{{{resting_place|{{{restingplace|}}}}}}}}}}}|2={{{resting place coordinates|{{{resting_place_coordinates|{{{restingplacecoordinates|}}}}}}}}}}}}}
| class17 = label
| label18 = مجموعہ
| data18 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=monuments |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{monuments|}}} }}
| label20 = قومیتھ
| data20 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=nationality |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{nationality|}}} }}
| class20 = category
| label21 = باقٕے ناو
| data21 = {{#invoke:WikidataIB | getValue | rank=best |P1449 |name=othername |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{other names|{{{other_names|{{{othername|{{{alias|}}}}}}}}}}}} }}
| class21 = nickname
| label23 = شَہَریَتھ
| data23 = {{#invoke:WikidataIB | getValue | rank=best |P27 |name=citizenship |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} | {{{citizenship|}}} }}
| class23 = category
| label24 = تٲلیٖم
| data24 = {{#invoke:WikidataIB | getValue | rank=best |P512 |name=education |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{education|}}} }}
| label25 = طٲلبہٕ عٔلِم
| data25 = {{#invoke:WikidataIB | getValue | rank=best |P69 |name=alma |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |list={{{list|ubl}}}| {{{alma mater|{{{alma_mater|}}}}}} }}
| label26 = پیٚیشہِ
| data26 = {{#invoke:String2 | ucfirst | {{#invoke:WikidataIB | getValue | rank=best |P106 |name=occupation |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |list={{{list|}}} |qual=DATES |{{{occupation|}}} }} }}
| class26 = role
| label27 = عَملی ؤری
| data27 = {{#if:{{{years active|{{{years_active|{{{yearsactive|}}}}}}}}}
| {{{years active|{{{years_active|{{{yearsactive|}}}}}}}}
| {{#invoke:WikidataIB | getValue | rank=best | P2031 | qid={{{qid|}}} | suppressfields={{{suppressfields|}}} | fetchwikidata={{{fetchwikidata|ALL}}} | onlysourced={{{onlysourced|No}}} | noicon={{{noicon|}}} }}{{#if:{{#invoke:WikidataIB | getValue | rank=best | P2032 | qid={{{qid|}}} | fetchwikidata={{{fetchwikidata|ALL}}} | onlysourced={{{onlysourced|No}}} | noicon={{{noicon|}}} }}| – {{#invoke:WikidataIB | getValue | rank=best | P2032 | qid={{{qid|}}} | suppressfields={{{suppressfields|}}} | fetchwikidata={{{fetchwikidata|ALL}}} | onlysourced={{{onlysourced|No}}} | noicon={{{noicon|}}} }}}}
}}
| label28 = دور
| data28 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=era |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{era|}}} }}
| class28 = category
| label29 = مُلٲزِم
| data29 = {{#invoke:WikidataIB | getValue | rank=best |P108 |name=employer |qid={{{qid|}}} |qual=DATES |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |list={{{list|ubl}}} | sorted=yes | {{{employer|}}} }}
| class29 = org
| label30 = {{#if:{{{organisation|}}}|تَنظیٖم|تَنظیٖم}}
| data30 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=organization |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{organisation|{{{organization|{{{organizations|}}}}}}}}} }}
| class30 = org
| label31 = نفری
| data31 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=agent |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{agent|}}} }}
| class31 = agent
| label32 = زاننہٕ یوان
| data32 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=known |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{known for|{{{known_for|{{{known|}}}}}}}}} }}
| label33 = کٲم
| data33 = {{br separated entries
|1={{#invoke:WikidataIB | getValue | rank=best |P800 |name=works |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |list={{{list|}}} |sorted=yes|noicon={{{noicon|}}} |{{{works|{{{credits|{{{notable works|{{{notable_works|}}}}}}}}}}}} }}
|2={{#if:{{#invoke:WikidataIB | getValue | rank=best |P1455 |name=list of works |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|no}}} |noicon={{{noicon|}}} |{{{list of works|{{{list_of_works|}}}}}} }}|See {{#invoke:WikidataIB | getValue | rank=best |P1455 |name=list of works |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|no}}} |list={{{list|}}} |sorted=yes|noicon={{{noicon|}}} |{{{list of works|{{{list_of_works|}}}}}} }}}}}}
| label34 = انداز
| data34 = {{#invoke:WikidataIB | getValue | rank=best |P136 |name=style |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} | {{{style|}}} }}
| class34 = category
| label37 = گرٕ عَلاقہٕ
| data37 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=home town |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{home town|{{{home_town|}}}}}} }}
| label38 = تنخواہ
| data38 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=salary |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{salary|}}} }}{{{salary|}}}
| label39 = کُل قٲمت
| data39 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=worth |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{net worth|{{{net_worth|{{{networth|}}}}}}}}} }}
| label40 = تھزَر
| data40 = {{#if:{{{height_m|{{{height_cm|}}}}}}{{{height_ft|}}}{{{height_in|}}} | {{convinfobox|{{{height_m|{{{height_cm|}}}}}}|{{#if:{{{height_m|}}}|m|cm}}|{{{height_ft|}}}|ft|{{{height_in|}}}|in}}}}{{#if:{{{height|}}} | {{infobox person/height|{{{height|}}}}}}}
| label41 = وَزَن
| data41 = {{#if:{{{weight_kg|}}}{{{weight_st|}}}{{{weight_lb|}}} | {{convinfobox|{{{weight_kg|}}}|kg|{{{weight_st|}}}|st|{{{weight_lb|}}}|lb}}}}{{#if:{{{weight|}}} | {{infobox person/weight|{{{weight|}}}}}}}
| label42 = ٹی وی
| data42 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=television |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{television|}}} }}
| label43 = لَقَب
| data43 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=title |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{title|}}} }}
| class43 = title
| label44 = اِصطلاح
| data44 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=term |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{term|}}} }}
| label45 = برٛونٛہہ اَدھیٖکٲرؠ
| data45 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=predecessor |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{predecessor|}}} }}
| label46 = پتہِ اَدھیٖکٲرؠ
| data46 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=successor |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{successor|}}} }}
| label47 = سِیٲسی جمٲژ
| data47 = {{#invoke:WikidataIB | getValue | rank=best |P102 |name=party |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |qual=dates|list={{{list|ubl}}}|noicon={{{noicon|}}}|{{{party|}}} }}
| class47 = org
| label48 = تٔحریٖک
| data48 = {{#invoke:WikidataIB | getValue | rank=best |P135 |name=movement |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon = {{{noicon|}}}|{{{movement|}}} }}
| class48 = category
| label49 = مُخٲلف
| data49 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=opponents |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{opponents|}}} }}
| label50 = بورٛڈ مؠمبر
| data50 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=boards |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{boards|}}} }}
| label53 = مُجرِمانہٕ جُرم
| data53 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=criminal charge |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{criminal charge|{{{criminal_charge|}}}}}} }}
| label54 = مُجرِمانہٕ پینلٹی
| data54 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=criminal penalty |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{criminal penalty|{{{criminal_penalty|}}}}}} }}
| label55 = {{#if:{{{judicial_status|{{{judicial status|}}}}}}|عدالتی حیثیت|مُجرِمانہٕ حیثیت}}
| data55 = {{#if:{{{judicial status|{{{judicial_status|}}}}}} | {{#invoke:WikidataIB | getValue | rank=best |P0 |name=judicial |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{judicial status|{{{judicial_status}}}}}} }} | {{#invoke:WikidataIB | getValue | rank=best |P0 |name=criminal status |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{criminal status|{{{criminal_status|}}}}}}}} }}
| class55 = category
| label56 = بٲژ
| data56 = {{#invoke:WikidataIB | getValue | rank=best |P26 |name=spouse |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|NO}}} |noicon={{{noicon|}}} |list = bullet list |qual=DATES | {{{spouse|}}} }}
| label57 = شریٖک
| data57 = {{#invoke:WikidataIB | getValue | rank=best |P451 |name=partner |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |{{{partner|{{{domesticpartner|{{{domestic_partner|}}}}}}}}} }}
| label58 = شُرؠ
| data58 = {{#invoke:WikidataIB | getPreferredValue |P1971 |name=children |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced = {{{onlysourced|No}}}| noicon={{{noicon|}}} | {{#invoke:WikidataIB | getPreferredValue |P40 |name=children |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced ={{{onlysourced|No}}} |noicon={{{noicon|}}} | {{{children|}}} }} }}
| label59 = مول موج
| data59 = {{#if:{{{parents|}}}|
{{{parents}}}
|
{{Unbulleted list
| {{#invoke:WikidataIB | getValue
| rank=best
| P22
| name=father
| qid={{{qid|}}}
| suppressfields={{{suppressfields|}}}
| fetchwikidata={{{fetchwikidata|ALL}}}
| onlysourced={{{onlysourced|No}}}
| noicon={{{noicon|}}}
| {{{father|}}}
}}
| {{#invoke:WikidataIB | getValue
| rank=best
| P25
| name=mother
| qid={{{qid|}}}
| suppressfields={{{suppressfields|}}}
| fetchwikidata={{{fetchwikidata|ALL}}}
| onlysourced={{{onlysourced|No}}}
| noicon={{{noicon|}}}
| {{{mother|}}}
}}
}}
}}
| label60 = رشتہٕ دار
| data60 = {{#invoke:WikidataIB | getValue | rank=best |P1038 |name=relatives |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon= {{{noicon|}}}|{{{relations|{{{relatives|}}}}}} }}
| label61 = عَیال
| data61 = {{#invoke:WikidataIB | getValue | rank=best |P3373 |name=family |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{family|}}} }}
| label62 = سلطنَت
| data62 = {{#invoke:WikidataIB | getValue | rank=best|P53||name=dynasty |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |{{{dynasty|}}} }}
| label63 = کال (call) نِشان
| data63 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=callsign |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{callsign|}}} }}
| label64 = یَنام
| data64 = {{#invoke:WikidataIB | getValue | rank=best |P166 |name=awards |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon={{{noicon|}}} |list={{{list|bullet list}}} |qual=ALL |collapse = 3 | {{{awards|}}} }}
| label65 = {{#if:{{{honours|}}}|اعزاز|اعزاز}}
| data65 = {{#invoke:WikidataIB | getValue | rank=best |P0 |name=honours |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{honours|{{{honors|}}}}}} }}
| label66 = وؠب سایِٹ
| data66 = {{if empty | {{#invoke:WikidataIB | getValue | rank=best |P856 |name=website |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced=no |noicon={{{noicon|}}} | {{{website|{{{homepage|}}}}}} }} | {{#invoke:WikidataIB | getValue | rank=best |P1581 |name=blog |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|no}}} |noicon={{{noicon|}}} }} }}
| header77 = {{#if: {{#invoke:WikidataIB | getValue | rank=best |P945 |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{allegiance|}}} }}
{{#invoke:WikidataIB | getValue | rank=best |P241 |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{military_branch|}}} }}
{{#invoke:WikidataIB | getValue | rank=best |P97 |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{noble_title|}}} }}
{{#invoke:WikidataIB | getValue | rank=best |P410 |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{military_rank|}}} }}
{{#invoke:WikidataIB | getValue | rank=best |P607 |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |{{{battles|}}} }}
| فوٗجی خدمات }}
| label78 = رینٛک
| data78 = {{#invoke:WikidataIB | getValue | rank=best |P410 |name=military rank |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |qual=DATES |{{{military_rank|}}} }}
| label79 = شاخ
| data79 = {{#invoke:WikidataIB | getValue | rank=best |P241 | name=military branch |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |qual=DATES |{{{military_branch|}}} }}
| label80 = عنوان
| data80 = {{#invoke:WikidataIB | getValue | rank=best |P97 |name=noble title |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |qual=ALL |{{{noble_title|}}} }}
| label81 = وفادٲری
| data81 = {{#invoke:WikidataIB | getValue | rank=best |P945 |name=allegiance |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon= {{{noicon|}}}|{{{allegiance|}}}}}
| label82 = جَنٛگ/لڑایہِ
| data82 = {{#invoke:WikidataIB | getValue | rank=best |P607 |name=battles |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced={{{onlysourced|No}}} |noicon= {{{noicon|}}}|{{{battles|}}}}}
| data83 = {{{misc|{{{module|}}}}}}
| data84 = {{{misc2|{{{module2|}}}}}}
| data85 = {{{misc3|{{{module3|}}}}}}
| data86 = {{{misc4|{{{module4|}}}}}}
| data87 = {{{misc5|{{{module5|}}}}}}
| data88 = {{{misc6|{{{module6|}}}}}}
| header73 = {{#if:{{#invoke:WikidataIB | getValue | rank=best |P109 |name=signature |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced=no |noicon=yes|{{{signature|}}}}}|دستخط}}
| data74 = {{#invoke:InfoboxImage |InfoboxImage |image={{#invoke:WikidataIB | getValue | rank=best |P109 |name=signature |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced=no |noicon=yes |{{{signature|}}}}} |size={{{signature_size|}}} |sizedefault=150px |alt={{{signature alt|{{{signature_alt|}}}}}}}}
| header75 = {{#if:{{{footnotes|}}}|نوٹ}}
| data76 = {{#if:{{{footnotes|}}}|<div style="text-align: left;">
{{{footnotes}}}</div>}}
| below = {{{below|}}}
}}<!--
-->{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox person with unknown parameters|VALUE{{PAGENAME}}]]}}|preview = Page using [[Template:Infobox person]] with unknown parameter "VALUE"|ignoreblank=y
|qid |suppressfields |fetchwikidata |onlysourced |noicon | abovestyle | agent | alias | alma mater | alma_mater | alt | awards | baptised | birth_date | birth_name | birth_place | birthname | boards | body discovered | body_discovered | burial_coordinates | burial_place | callsign | caption | child | children | citizenship | credits | criminal charge | criminal penalty | criminal status | criminal_charge | criminal_penalty | criminal_status | dateformat | death cause | death_cause | death_date | death_place | denomination | disappeared_date | disappeared_place | disappeared_status | domestic_partner | domesticpartner | education | employer | era | ethnicity | family | father | footnotes | height | height_cm | height_ft | height_in | height_m | home town | home_town | homepage | honorific prefix | honorific suffix | honorific_prefix | honorific_suffix | honors | honours | image | image caption | image size | image_caption | image_size | image_upright | imagesize | judicial status | judicial_status | known | known for | known_for | list | misc | misc2 | misc3 | misc4 | misc5 | misc6 | module | module2 | module3 | module4 | module5 | module6 | monuments | mother | movement | name | nationality | native_name | native_name_lang | net worth | net_worth | networth | notable works | notable_works | occupation | opponents | organisation | organization | organizations | other names | other_names | othername | parents | partner | party | position_held | predecessor | pronunciation | refs | relations | relatives | religion | resting place | resting place coordinates | resting_place | resting_place_coordinates | restingplace | restingplacecoordinates | salary | signature | signature alt | signature_alt | signature_size | spouse | status | style | successor | television | term | title | URL | website | weight | weight_kg | weight_lb | weight_st | works | years active | years_active | yearsactive | noble_title | military_rank | military_branch }}<!--
-->{{Main other|
{{#if:{{{1|}}}{{{2|}}}{{{3|}}}{{{4|}}}{{{5|}}}|[[Category:Infobox person using numbered parameter]]}}<!--
-->{{#if:{{{box_width|}}}|[[Category:Infobox person using boxwidth parameter]]}}<!--
-->{{#if:{{{death_date|}}}{{{death_place|}}}|{{#if:{{{salary|}}}{{{net worth|{{{net_worth|{{{networth|}}}}}}}}}|[[Category:Infobox person using certain parameters when dead]]}}}}<!--
-->{{#if:{{{influences|}}}{{{influenced|}}}|[[Category:Infobox person using influence]]}}<!--
-->{{#if:{{{pronunciation|}}}|[[Category:Biography template using pronunciation]]}}<!--
-->{{#if:{{{signature|}}}|[[Category:Biography with signature]]}}[[Category:Articles with hCards]]
}}<includeonly>{{main other|{{#if:{{safesubst:#invoke:Check for unknown parameters|check|unknown=1|preview=1|fetchwikidata|onlysourced|dateformat|noicon|list|suppressfields}}|<!-- Check for locally-defined parameters could go here-->|[[Category:Articles with infoboxes completely from Wikidata]]}}}}</includeonly>
<includeonly>{{main other |[[Category:Articles using Template Infobox person Wikidata]]}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
0zvymojc04u3m89vhyohwoggwqnuuip
آرمی (فینڈم)
0
28133
142899
132622
2026-06-25T21:15:18Z
InternetArchiveBot
8158
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
142899
wikitext
text/x-wiki
{{مولوٗماتھ
| bgcolor = Purple
| titletextcolor = White
}}
آرمی ([[اَنٛگریٖزی زَبان|اَنٛگریٖزی]]: ARMY ، [[کوریٲیی زبان|کوریَن]] : 아미) چھُ [[جۆنوٗبی کۄرِیا|دَکھیُٛن کوریائی]] لڑکہٕ گروپ [[بی ٹی ایس|بی ٹی ایسُک]] سرکٲری پَسنٛد کرن وٲلؠ (Fans)۔ یہِ ناو چھُ انگریزی لفظ "آرمی" پؠٹھٕ آمُت، ییٚمیُک مطلب چھُ "فوج"،بی ٹی ایس ییٚمیُک مطلب چھُ "گولہِ نِش بچن وول سکاؤٹ تہٕ پَسنٛد کرن والؠن چھِ ہمیشہٕ اکوٹہٕ، فوج تہٕ جسمٕک پٲٹھؠ"۔<ref>{{ویب حَوالہٕ|last=김정호|date=2019-06-03|title=방탄 아미 뜻, 어떤 건가 보니|url=https://www.hankyung.com/article/2019060323137|access-date=2026-03-11|website=한국경제|language=ko|archive-date=2025-06-17|archive-url=https://web.archive.org/web/20250617005509/https://www.hankyung.com/article/2019060323137|url-status=dead}}</ref> یہٕ اوس 9 جُلَے 2014 مَنٛز فین میٹنگہٕ پتہٕ باضٲبطہٕ طور بناونہٕ آمُت۔ آرمی ہُنٛد صٔحیٖح تعداد چھُنہٕ معلوٗم۔
== حَوالہٕ ==
[[زٲژ:کے پوپ]]
b26wtgf9lmgcq0530j4pf8w0390zbp0
Module:Wikidades
828
28635
142920
142116
2026-06-26T08:14:38Z
آیات محراج
11062
142920
Scribunto
text/plain
-- version 20260211 from master @cawiki
-- changes from previous version:
-- new function sitelinks
local p = {}
-- Initialization of variables --------------------
local i18n = { -- internationalisation at subpage /i18n
["errors"] = {
["property-not-found"] = "Property not found.",
["qualifier-not-found"] = "Qualifier not found.",
},
["datetime"] = {
-- $1 is a placeholder for the actual number
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = "$1 BCE", -- how print negative years
["ad"] = "$1", -- how print 1st century AD dates
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100000 years", -- precision: hundred thousand years; thousand separators added afterwards
[5] = "$10000 years", -- precision: ten thousand years; thousand separators added afterwards
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs
},
["years-old"] = {"", ""}, -- year(s) old, as in magic word {PLURAL:$1|singular|plural}
-- two values for most languages, up to six values for some languages, examples:
-- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages
-- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic
-- see documentation of PLURAL in your language at [[mw:Help:Magic words#Localization 2]]
["cite"] = { -- cite parameters
["title"] = "title",
["author"] = "author",
["date"] = "date",
["pages"] = "pages",
["language"] = "language",
-- cite web parameters
["url"] = "url",
["website"] = "website",
["access-date"] = "access-date",
["archive-url"] = "archive-url",
["archive-date"] = "archive-date",
["publisher"] = "publisher",
["quote"] = "quote",
-- cite journal parameters
["work"] = "work",
["issue"] = "issue",
["issn"] = "issn",
["doi"] = "doi"
},
-- default local wiki settings
["addpencil"] = false, -- adds a pencil icon linked to Wikidata statement, planned to overwrite by Wikidata Bridge
["categorylabels"] = "", -- Category:Pages with Wikidata labels not translated (void for no local category)
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}, -- additional fallback language codes
["suppressids"] = {}, -- list of Qid values to suppress
["qidlabels"] = true -- show labels as Qid if no fallback translation is available
}
local cases = {} -- functions for local grammatical cases defined at subpage /i18n
local required = ... -- variadic arguments from require function
local wiki =
{
langcode = mw.language.getContentLanguage().code,
module_title = required or mw.getCurrentFrame():getTitle()
}
local untranslated -- used in infobox modules: nil or true
local _ -- variable for unused returned values, avoiding globals
-- Module local functions --------------------------------------------
-- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0
local function tableMerge(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n(lang)
local exist, res = pcall(require, wiki.module_title .. "/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
cases = res.cases
end
if lang ~= wiki.langcode then
exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang)
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
tableMerge(cases, res.cases)
end
end
i18n.suppress = {}
for _, id in ipairs(i18n.suppressids) do
i18n.suppress[id] = true
end
end
-- Table of language codes: requested or default and its fallbacks
local function findLang(langcode)
if mw.language.isKnownLanguageTag(langcode or '') == false then
local cframe = mw.getCurrentFrame()
local pframe = cframe:getParent()
langcode = pframe and pframe.args.lang
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:callParserFunction('int', {'lang'})
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
langcode = wiki.langcode
end
end
end
loadI18n(langcode)
local languages = mw.language.getFallbacksFor(langcode)
table.insert(languages, 1, langcode)
table.insert(languages, 2, "mul") -- see [[d:Help:Default values for labels and aliases]]
if langcode == wiki.langcode then
for _, l in ipairs(i18n.addfallback) do
table.insert(languages, l)
end
end
return languages
end
-- Argument is 'set' when it exists (not nil) or when it is not an empty string.
local function isSet(var)
return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == ''))
end
-- Set local case to a label
local function case(localcase, label, ...)
if not isSet(label) then return label end
if type(localcase) == "function" then
return localcase(label)
elseif localcase == "smallcaps" then
return '<span style="font-variant: small-caps;">' .. label .. '</span>'
elseif cases[localcase] then
return cases[localcase](label, ...)
end
return label
end
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if not ret then return end
ret = ret[v]
end
return ret
end
-- get label with an array of fallback languages
-- mw.wikibase.getLabelWithLang uses lang mul as last fallback, not the first one
local function getLabelByLangs(id, languages)
local label, lang
for _, l in ipairs(languages) do
label = mw.wikibase.getLabelByLang(id, l)
if label then
lang = (l == "mul" and languages[1] or l)
break
end
end
return label, lang
end
-- getBestStatements if bestrank=true, else getAllStatements with no deprecated
local function getStatements(entityId, property, bestrank)
local claims = {}
if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end
if bestrank then
claims = mw.wikibase.getBestStatements(entityId, property)
else
local allclaims = mw.wikibase.getAllStatements(entityId, property)
for _, c in ipairs(allclaims) do
if c.rank ~= "deprecated" then
table.insert(claims, c)
end
end
end
return claims
end
-- Is gender femenine? true or false
local function feminineGender(id)
for idn in string.gmatch(id, "Q%d+") do
local claims = mw.wikibase.getBestStatements(idn or mw.wikibase.getEntityIdForCurrentPage(),'P21')
local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"})
if gender_id == nil or not (gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445") then
-- not female, transgender female or female organism
return false
end
end
return true
end
-- Fetch female form of label
local function feminineForm(id, lang)
local feminine_claims = getStatements(id, 'P2521')
for _, feminine_claim in ipairs(feminine_claims) do
if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then
return feminine_claim.mainsnak.datavalue.value.text
end
end
end
-- Add an icon for no label in requested language
local function addLabelIcon(label_id, lang, uselang, icon)
local ret_lang, ret_icon = '', ''
if icon then
if lang and lang ~= uselang then
ret_lang = " <sup>(" .. lang .. ")</sup>"
end
if label_id and (lang == nil or lang ~= uselang) then
local namespace = ''
if string.sub(label_id, 1, 1) == 'P' then
namespace = 'Property:'
end
ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|class=skin-invert|"
.. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain()
.. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]"
untranslated = true
end
if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then
ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]')
end
end
return ret_lang .. ret_icon
end
-- editicon values: true/false (no=false), right, void defaults to i18n.addpencil
-- labelicon only by parameter
local function setIcons(arg, parg)
local val = arg == nil and parg or arg
local edit_icon, label_icon
if not isSet(val) then
edit_icon, label_icon = i18n.addpencil, true
elseif val == false or val == "false" or val == "no" then
edit_icon, label_icon = false, false
else
edit_icon, label_icon = val, true
end
return edit_icon, label_icon
end
-- Add an icon for editing a statement with requirements for future Wikidata Bridge
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or ''
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>'
.. "[[File:Arbcom ru editing.svg|10px|baseline|"
.. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata')
.. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]"
.. "</span>"
if isSet(i18n.categoryprop) then
ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]"
end
end
return ret
end
-- add edit icon to the last element of a table
local function addEditIconTable(thetable, parameters)
if #thetable == 0 or parameters.editicon == false then
return thetable
end
local last_element = thetable[#thetable]
local the_icon = addEditIcon(parameters)
-- add it before last html closing tags
local tags = ''
local rev_element = string.reverse(last_element)
for tag in string.gmatch(rev_element, '(>%l+/<)') do
if string.match(rev_element, '^' .. tags .. tag) then
tags = tags .. tag
else
break
end
end
local last_tags = string.reverse(tags)
local offset = string.find(last_element, last_tags .. '$')
if offset then
thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags
else
thetable[#thetable] = last_element .. the_icon
end
return thetable
end
-- Escape Lua captures
local function captureEscapes(text)
return mw.ustring.gsub(text, "(%%%d)", "%%%1")
end
-- expandTemplate or callParserFunction
local function expandBraces(text, formatting)
if text == nil or formatting == nil then return text end
-- only expand braces if provided in argument, not included in value as in Q1164668
if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end
if type(text) ~= "string" then
text = tostring(text)
end
for braces in mw.ustring.gmatch(text, "{{(.-)}}") do
local parts = mw.text.split(braces, "|")
local title_part = parts[1]
local parameters = {}
for i = 2, #parts do
local subparts = mw.ustring.find(parts[i], "=")
if subparts then
local param_name = mw.ustring.sub(parts[i], 1, subparts - 1)
local param_value = mw.ustring.sub(parts[i], subparts + 1, -1)
-- reconstruct broken links by parts
if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then
parameters[param_name] = param_value
local part_next = i + 1
while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do
parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next]
part_next = part_next + 1
end
else
parameters[param_name] = param_value
end
elseif not mw.ustring.find(parts[i], "]]", 1, true) then
table.insert(parameters, parts[i])
end
end
local braces_expanded
if mw.ustring.find(title_part, ":")
and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template:
then
braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters}
elseif title_part == "!" then
-- template:! may be deleted locally, now provided by MediaWiki
-- although it works, it raises a Lua internal error
braces_expanded = "|"
else
braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters}
end
braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters
braces_expanded = captureEscapes(braces_expanded)
text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded)
end
return text
end
-- format data type math
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
end
-- format data type musical-notation
local function printDatatypeMusical(data, formatting)
local attr = {}
if formatting == 'sound' then
attr.sound = 1
end
return mw.getCurrentFrame():extensionTag('score', data, attr)
end
-- format data type string
local function printDatatypeString(data, parameters)
if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting)
elseif parameters.case then
return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id))
end
local data_number = string.match(data, "^%d+")
if data_number then -- sort key by initial number and remaining string
local sortkey = string.format("%019d", data_number * 1000)
return data, sortkey .. string.sub(data, #data_number + 1)
end
return data
end
-- format data type tabular-data
local function printDatatypeTabular(data, parameters)
local icon
if parameters.formatting == 'raw' then
icon = "no-icon"
data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data
end
return printDatatypeString(data, parameters), icon
end
-- format data type url
local function printDatatypeUrl(data, parameters)
if parameters.formatting == 'weblink' then
local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/')
local label = string.gsub(label_parts[3], '^www%.', '')
if #label_parts > 3 then
label = label .. '…'
end
return '[' .. data .. ' ' .. label .. ']'
end
return printDatatypeString(data, parameters)
end
-- format data type external-id
local function printDatatypeExternal(data, parameters)
if parameters.formatting == 'externalid' then
local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL
local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"})
if p_link_pattern then
local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data})
return '[' .. p_link .. ' ' .. data .. ']'
end
end
return printDatatypeString(data, parameters)
end
-- format data type commonsMedia and geo-shape
local function printDatatypeMedia(data, parameters)
local icon
if not string.find((parameters.formatting or ''), '$1', 1, true) then
icon = "no-icon"
if not string.find(data, '^Data:') then
data = mw.uri.encode(data, 'PATH') -- encode special characters in filename
end
end
return printDatatypeString(data, parameters), icon
end
-- format data type globe-coordinate
local function printDatatypeCoordinate(data, formatting)
local function globes(globe_id)
-- parameter globe in coordinates accepted by GeoHack
-- see [[w:en:Special:PrefixIndex/Template:GeoTemplate]]
local globes = {['Q3343'] = 'ariel', ['Q3134'] = 'callisto', ['Q596'] = 'ceres',
['Q6604'] = 'charon', ['Q7548'] = 'deimos', ['Q15040'] = 'dione', ['Q2'] = 'earth',
['Q3303'] = 'enceladus', ['Q3143'] = 'europa', ['Q3169'] = 'ganymede',
['Q15037'] = 'hyperion', ['Q17958'] = 'iapetus', ['Q3123'] = 'io',
['Q319'] = 'jupiter', ['Q111'] = 'mars', ['Q308'] = 'mercury', ['Q15034'] = 'mimas',
['Q3352'] = 'miranda', ['Q405'] = 'moon', ['Q3332'] = 'oberon', ['Q7547'] = 'phobos',
['Q17975'] = 'phoebe', ['Q339'] = 'pluto', ['Q15050'] = 'rhea', ['Q15047'] = 'tethys',
['Q2565'] = 'titan', ['Q3322'] = 'titania', ['Q3359'] = 'triton',
['Q3338'] = 'umbriel', ['Q313']='venus', ['Q3030']='vesta'}
return globes[globe_id]
end
local function roundPrecision(num, prec)
if prec == nil or prec <= 0 then return num end
local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001
return math.floor(num / sig + 0.5) * sig
end
local precision = data.precision
local latitude = roundPrecision(data.latitude, precision)
local longitude = roundPrecision(data.longitude, precision)
if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then
local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude})
if string.find(formatting, '$globe', 1, true) then
local myglobe = 'earth'
if isSet(data.globe) then
local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2
myglobe = globes(globenum) or 'earth'
end
ret = mw.ustring.gsub(ret, '$globe', myglobe)
end
return expandBraces(ret, formatting)
elseif formatting == 'latitude' then
return latitude, "no-icon"
elseif formatting == 'longitude' then
return longitude, "no-icon"
elseif formatting == 'dimension' then
return data.dimension, "no-icon"
else --default formatting='globe'
if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then
return 'earth', "no-icon"
else
local globenum = mw.text.split(data.globe, 'entity/')[2]
return globes(globenum) or globenum, "no-icon"
end
end
end
-- Local functions for data value quantity
local function unitSymbol(id, lang) -- get unit symbol or code
local unit_symbol = ''
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true)
end
if unit_symbol == '' then
-- fetch it
local claims = mw.wikibase.getBestStatements(id, 'P5061')
if #claims > 0 then
local langclaims = {}
for _, snak in ipairs(claims) do
local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"})
if snak_language and not langclaims[snak_language] then -- just the first one by language
langclaims[snak_language] = snak.mainsnak.datavalue.value.text
end
end
for _, l in ipairs(lang) do
if langclaims[l] then
return langclaims[l]
end
end
end
end
return unit_symbol
end
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]"
else
suffix = unit_symbol
end
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit label
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]"
end
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
end
end
if suffix ~= '' then
suffix = ' ' .. suffix
end
return suffix
end
local function roundDefPrecision(in_num, factor)
-- rounds out_num with significant figures of in_num (default precision)
local out_num = in_num * factor
if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN
return out_num
end
-- first, count digits after decimal mark, handling cases like '12.345e6'
local exponent, prec
local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
-- significant figures
local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001
local out_bracket = in_bracket * out_num / in_num
out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001
-- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound)
return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket
end
-- format data type quantity
local function printDatatypeQuantity(data, parameters)
local amount = data.amount
amount = mw.ustring.gsub(amount, "%+", "")
local suffix = ""
local conv_amount, conv_suffix
if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then
local unit_id = data.unit
unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1)
if string.sub(unit_id, 1, 1) == "Q" then
suffix = getUnit(amount, unit_id, parameters)
local convert_to
if parameters.convert == "default" or parameters.convert == "default2" then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if exist and units.convert_default and next(units.convert_default) ~= nil then
convert_to = units.convert_default[unit_id]
end
elseif string.sub(parameters.convert or '', 1, 1) == "Q" then
convert_to = parameters.convert
elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then
convert_to = 'Q11574' -- seconds
end
if convert_to and convert_to ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
}
if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount))
conv_amount = math.floor(tonumber(amount_f) + 0.5)
else
local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit
table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit
for _, conv in ipairs(conversions) do
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then
conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount))
break
end
end
end
end
if conv_amount then
conv_suffix = getUnit(conv_amount, convert_to, parameters)
end
elseif parameters.convert == 'M' then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if wiki.langcode == parameters.lang[1]
and exist and units.convert2M and type(units.convert2M) == "function"
then
conv_amount, conv_suffix = units.convert2M(amount)
conv_suffix = (conv_suffix or "").. suffix
elseif tonumber(amount) > 10^8 then
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. mw.text.trim(suffix)
end
end
if conv_amount and parameters.formatting == 'raw' then
amount = conv_amount
suffix = ""
conv_amount = nil
end
end
end
local lang_obj = mw.language.new(parameters.lang[1])
local sortkey = string.format("%019d", tonumber(amount) * 1000)
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == 'duration' then
return lang_obj:formatDuration(sec)
elseif parameters.formatting == 'durationm:s' then
local mm = math.floor(sec / 60)
local ss = sec - (mm * 60)
return string.format("%02d:%02d", mm, ss)
else -- durationhms or durationh:m:s
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals
local duration = ''
for i, v in ipairs(intervals) do
if parameters.formatting == 'durationh:m:s' then
if i == 1 and sec2table[v] then
duration = duration .. sec2table[v] .. ":"
elseif i == 2 then
duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":"
elseif i == 3 then
local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0))
duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str
end
elseif sec2table[v] then
duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "")
end
end
return duration
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id))
elseif parameters.formatting ~= 'raw' then
if parameters.numformat then
amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount)))
else
amount = lang_obj:formatNum(tonumber(amount))
end
end
if conv_amount then
local conv_sortkey = string.format("%019d", conv_amount * 1000)
conv_amount = lang_obj:formatNum(conv_amount)
if parameters.convert == 'default2' then
return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey
else
return conv_amount .. conv_suffix, conv_sortkey
end
elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern
amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount})
end
return amount .. suffix, sortkey
end
-- format data type time
local function printDatatypeTime(data, parameters)
-- Dates and times are stored in ISO 8601 format
local timestamp = data.time
if parameters.formatting == "raw" then
return timestamp, timestamp
end
local post_format
local calendar_add = ""
local precision = data.precision or 11
if string.sub(timestamp, 1, 1) == '-' then
post_format = i18n.datetime["bc"]
elseif string.sub(timestamp, 2, 3) == '00' then
post_format = i18n.datetime["ad"]
elseif precision > 8 then
-- calendar model
local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"}
local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2]
if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian")
or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian")
then
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end
local function formatTime(form, stamp)
local pattern
if type(form) == "function" then
pattern = form(stamp)
else
pattern = form
end
stamp = tostring(stamp)
if mw.ustring.find(pattern, "$1") then
return mw.ustring.gsub(pattern, "$1", stamp)
elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0
stamp = '+' .. string.sub(stamp, 2)
elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number
stamp = string.format("%04d", stamp)
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
end
local function postFormat(t)
if post_format and mw.ustring.find(post_format, "$1") then
return mw.ustring.gsub(post_format, "$1", t)
end
return t
end
local intyear = tonumber(string.match(timestamp, "[+-](%d+)"))
local ret = ""
if precision <= 5 then -- precision is 10000 years or more
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = formatTime(i18n.datetime[precision], y2)
if post_format == i18n.datetime["bc"] then
ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
local ret_number = string.match(ret, "%d+")
if ret_number ~= nil then
ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number)))
end
elseif precision == 6 or precision == 7 then -- millennia or centuries
local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1
ret = formatTime(i18n.datetime[precision], card)
ret = postFormat(ret)
elseif precision == 8 then -- decades
local card = math.floor(math.abs(intyear) / 10) * 10
ret = formatTime(i18n.datetime[8], card)
ret = postFormat(ret)
elseif intyear > 9999 then -- not a valid timestamp
return
elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year
ret = formatTime(i18n.datetime[9], intyear)
ret = postFormat(ret) .. calendar_add
elseif precision == 10 then -- month
ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month
ret = postFormat(ret) .. calendar_add
else -- precision 11, day
ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp)
ret = postFormat(ret) .. calendar_add
end
return ret, timestamp
end
-- format data value wikibase-entityid with data types wikibase-item or wikibase-property
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local entity_page = 'Special:EntityPage/' .. entity_id
local label, lang = getLabelByLangs(entity_id, parameters.lang)
local sitelink = mw.wikibase.getSitelink(entity_id)
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.gender == 'feminineform' then
labelcase = feminineForm(entity_id, lang) or labelcase
end
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
if labelcase == nil and i18n.qidlabels == false then
return
end
local ret1, ret2
if parameter == 'label' then
ret1 = labelcase or entity_id
ret2 = labelcase or entity_id
elseif parameter == 'sitelink' then
ret1 = (sitelink or 'd:' .. entity_page)
ret2 = sitelink or entity_id
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id)
ret1 = expandBraces(ret1, parameter)
ret2 = labelcase or entity_id
else
if parameter == "ucfirst" or parameter == "ucinternallink" then
if labelcase and lang then
labelcase = mw.language.new(lang):ucfirst(labelcase)
end
-- only first of a list, reset formatting for next ones
if parameter == "ucinterlanllink" then
parameters.formatting = 'internallink'
else
parameters.formatting = nil -- default format
end
end
if sitelink then
ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]'
ret2 = labelcase
elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then
ret1 = '[[' .. label .. '|' .. labelcase .. ']]'
ret2 = labelcase
else
ret1 = '[[d:' .. entity_page .. '|' .. (labelcase or entity_id) .. ']]'
ret2 = labelcase or entity_id
end
end
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
-- format data type wikibase-lexeme
local function printDatatypeLexeme(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local lemmas = mw.wikibase.getEntity(entity_id):getLemmas()
if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then
return
end
local ret = '[[d:Special:EntityPage/' .. entity_id .. '|' .. lemmas[1][1] .. ']]'
if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then
ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>"
end
return ret, entity_id
end
-- format data type monolingualtext
local function printDatatypeMonolingual(data, parameters)
-- data fields: language [string], text [string]
local valid_lang = {[parameters.lang[1]] = true, ["mul"] = true}
if parameters.list == "lang" and not valid_lang[data["language"]] then
return
elseif parameters.list == "notlang" and valid_lang[data["language"]] then
return
elseif parameters.formatting == "language" or parameters.formatting == "text" then
return data[parameters.formatting]
end
local result = data["text"]
valid_lang = {[wiki.langcode] = true, ["mul"] = true}
if not valid_lang[data["language"]] then
result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]})
end
if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then
-- output format defined with $text, $language
result = mw.ustring.gsub(parameters.formatting, '$text', result)
result = mw.ustring.gsub(result, '$language', data["language"])
end
return result
end
local function getSnakValue(snak, parameters)
parameters.editbridge = false
if snak.snaktype == 'value' then -- see Special:ListDatatypes
-- data value string
if snak.datatype == "string" then
parameters.editbridge = true -- Wikidata Bridge currently only for string values
return printDatatypeString(snak.datavalue.value, parameters)
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "tabular-data" then
return printDatatypeTabular(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
elseif snak.datatype == "external-id" then
return printDatatypeExternal(snak.datavalue.value, parameters)
elseif snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- data types other than string value
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
if i18n.suppress[snak.datavalue.value.id] then
return
end
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'wikibase-lexeme' then
return printDatatypeLexeme(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
elseif snak.datatype == "globe-coordinate" then
return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting)
elseif snak.datatype == "quantity" then
return printDatatypeQuantity(snak.datavalue.value, parameters)
elseif snak.datatype == "time" then
return printDatatypeTime(snak.datavalue.value, parameters)
end
elseif snak.snaktype == 'novalue' then
if parameters.formatting == 'raw' or parameters.shownovalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw' or parameters.showsomevalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
return mw.wikibase.renderSnak(snak)
end
local function printError(key)
return '<span class="error">' .. i18n.errors[key] .. '</span>'
end
local function getQualifierSnak(claim, qualifierId, parameters)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then
if qualifier[1].datatype == "monolingualtext" then
-- iterate over monolingualtext qualifiers to get languages
local qual_lang, qual_mul
for idx in pairs(qualifier) do
qual_lang = getSnak(qualifier[idx], {"datavalue", "value", "language"})
if qual_lang == parameters.lang[1] then
return qualifier[idx] -- return local language if found
elseif qual_lang == "mul" then
qual_mul = qualifier[idx]
end
end
return qual_mul -- else return multilingual
elseif parameters.list then
return qualifier
else
return qualifier[1]
end
end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameters)
local snak, error = getQualifierSnak(claim, qualifierId, parameters)
if not snak then
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.listmax)
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
if maxvals and maxvals == #result then break end
end
return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1]
else -- a property or a qualifier
return getSnakValue(snak, parameters)
end
end
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local value, sortkey, valueraw = {}, {}, {}
local parent_raw, value_text
if qids[1] == parameters.property then
parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
for idx, p_qid in ipairs(parent_qids) do
local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2])
if parent_claims[1] then
value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters)
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
if value[1] then
value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction)
end
return value_text, sortkey[1], valueraw[1]
end
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not (parameters.references or parameters.onlysourced) then
return '', false
end
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
local notproperref = {
["P143"] = true, -- imported from
["P3452"] = true, -- inferred from
["P887"] = true, -- based on heuristic
["P4656"] = true -- Wikimedia import URL
}
local result = {}
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
local refs = {}
local validref = true
local ref_id
-- traverse through all parts of the current reference
for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do
for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do
if notproperref[snakkey] then -- not a proper reference
validref = false
break
end
end
if validref then
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
if snakval[snakidx].datatype == 'external-id' then
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '')
else
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '')
end
end
refs[snakkey] = refparts
refparts = nil
if snakkey == "P248" then -- stated in
ref_id = getSnak(snakval, {1, "datavalue", "value", "id"})
end
end
end
-- fill missing values with parent item
if ref_id then
local function refParent(qid, pid, formatting)
local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"})
return snak and getSnakValue(snak, {formatting=formatting, lang=lang})
end
refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author
refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work
refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher
refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date
refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in
refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s)
refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue
refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN
refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI
end
-- get title of local templates for citing references
local template_web = mw.wikibase.getSitelink('Q5637226') or ""
template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front
local template_journal = mw.wikibase.getSitelink('Q5624899') or ""
template_journal = mw.text.split(template_journal, ":")[2]
local citeParams = {}
if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then
-- if both "reference URL" and "title" (or "stated in") are present, then use cite web template
citeParams[i18n['cite']['url']] = refs['P854']
if refs['P248'] and refs['P1476'] == nil then
citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]")
else
citeParams[i18n['cite']['title']] = refs['P1476']
citeParams[i18n['cite']['website']] = refs['P248']
end
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['publisher']] = refs['P123']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['access-date']] = refs['P813']
citeParams[i18n['cite']['archive-url']] = refs['P1065']
citeParams[i18n['cite']['archive-date']] = refs['P2960']
citeParams[i18n['cite']['quote']] = refs['P1683']
refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams}
elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then
-- if both "published in" and "title" (or "stated in") are present, then use cite journal template
citeParams[i18n['cite']['work']] = refs['P1433']
citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248']
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['issue']] = refs['P433']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['issn']] = refs['P236']
citeParams[i18n['cite']['doi']] = refs['P356']
refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams}
elseif validref then
-- raw ouput
local snaksorder = claim.references[ref]["snaks-order"]
local function indexed(a)
for _, b in ipairs(snaksorder) do
if b == a then return true end
end
return false
end
for k, _ in pairs(refs or {}) do
if not indexed(k) then
table.insert(snaksorder, k)
end
end
local italics = "''"
local ref_label
for _, k in ipairs(snaksorder) do
if refs[k] then
refparts = refparts and refparts .. " " or ""
ref_label = case('infoboxlabel', getLabelByLangs(k, lang) or '')
refparts = refparts .. mw.ustring.gsub(ref_label, "^%l", mw.ustring.upper) .. ": "
refparts = refparts .. italics .. refs[k] .. italics .. "."
italics = ""
end
end
end
if refparts then
local ref_name = claim.references[ref].hash
result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name})
if maxrefs and maxrefs == #result then break end
end
end
if #result > 0 then
if parameters.references then
if isSet(i18n.categoryref) then
result[#result + 1] = "[[" ..i18n.categoryref .. "]]"
end
return table.concat(result), true
else
return '', true
end
end
return '', false
end
-- Set lists of filtered values
local function setFilterLists(num_qual, args)
local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}}
for i = 0, num_qual do
for k, _ in pairs(lists) do
if isSet(args[k .. i]) then
lists[k][tostring(i)] = {}
local pattern = 'Q%d+'
if string.sub(args[k .. i], 1, 1) ~= 'Q' then
pattern = '[^%p%s]+'
end
for q in string.gmatch(args[k .. i], pattern) do
lists[k][tostring(i)][q] = true
end
end
end
end
return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue']
end
local function tableParameters(args, parameters, column)
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
column_params.case = args["case" .. column]
end
return column_params
end
local function getEntityId(args, pargs, unnamed)
pargs = pargs or {}
local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil)
if not isSet(id) then
id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil)
end
if isSet(id) then
if string.find(id, ":") then -- remove prefix as Property:Pid
id = mw.text.split(id, ":")[2]
end
else
id = mw.wikibase.getEntityIdForCurrentPage()
end
return id
end
local function getArg(value, default, aliases)
if type(value) == 'boolean' then return value
elseif value == "false" or value == "no" then return false
elseif value == "true" or value == "yes" then return true
elseif value and aliases and aliases[value] then return aliases[value]
elseif isSet(value) then return value
elseif default then return default
else return nil
end
end
-- Main function claim ---------------------------------------------
-- on debug console use: =p.claim{item="Q...", property="P...", ...}
function p.claim(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local is_sandbox = isSet(pargs.sandbox)
if not required and is_sandbox then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame)
end
--If a value is already set, use it
if isSet(args.value) then
if args.value == 'NONE' then
return
else
return args.value
end
end
-- arguments
local parameters = {}
parameters.id = getEntityId(args, pargs)
if parameters.id == nil then return end
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))
local i = 2
while isSet(args["qualifier" .. i]) do
qualifierId[i] = string.upper(args["qualifier" .. i])
i = i + 1
end
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.numformat = getArg(args.numformat)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.listmax = args.listmax
parameters.listrank = getArg(args.listrank)
if type(parameters.list) == "number" then -- backwards compatibility
parameters.listmax = parameters.listmax or parameters.list
parameters.list = true
elseif parameters.list == "bestrank" then
parameters.listrank = parameters.listrank or "bestrank"
parameters.list = true
end
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.showsomevalue = getArg(args.showsomevalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator = getArg(args.qseparator, parameters.separator)
parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction)
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references = getArg(args.references, false)
parameters.onlysourced = getArg(args.onlysourced, false)
local showerrors = args.showerrors
local default = args.default
if default then showerrors = nil end
parameters.lang = findLang(args.lang)
if parameters.formatting == "raw" then
parameters.editicon, parameters.labelicon = false, false
else
parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand
end
-- fetch property
local claims = {}
local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang'
for p in string.gmatch(parameters.property, 'P[%d/P]+') do -- P123 or P45/P67
if string.find(p, ".+/.+") then
local props = mw.text.split(p, "/")
local claims_child = {}
claims_child = getStatements(parameters.id, props[1], bestrank)
if #claims_child > 0 then
local parent_id, _, _ = getValueOfClaim(claims_child[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
if string.sub(parent_id or '', 1, 1) == "Q" then
claims = getStatements(parent_id, props[2], bestrank)
if #claims > 0 then
parameters.property = props[1]
break
end
end
end
else
claims = getStatements(parameters.id, p, bestrank)
if #claims > 0 then
parameters.property = p
break
end
end
end
if #claims == 0 then
local ret = showerrors and printError("property-not-found") or default
return ret, args.query == 'num' and 0 or ''
end
-- defaults for table
local preformat, postformat = "", ""
local whitelisted = false
local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {}
if parameters.formatting == "table" then
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain())
parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator)
if not rowformat then
rowformat = "$0 ($1"
i = 2
while qualifierId[i] do
rowformat = rowformat .. ", $" .. i
i = i + 1
end
rowformat = rowformat .. ")"
elseif mw.ustring.find(rowformat, "^[*#]") then
parameters.separator = "</li><li>"
parameters.conjunction = "</li><li>"
if mw.ustring.match(rowformat, "^[*#]") == "*" then
preformat = "<ul><li>"
postformat = "</li></ul>"
else
preformat = "<ol><li>"
postformat = "</li></ol>"
end
rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "")
end
-- set lists of filtered values
whitelist, blacklist, ignorevalue, selectvalue = setFilterLists(#qualifierId, args)
local next = next
if next(whitelist) ~= nil then whitelisted = true end
end
-- set feminine case if gender is requested
local itemgender = args.itemgender
local idgender
if itemgender then
if string.match(itemgender, "^P%d+$") then
local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"})
if snak_id then
idgender = snak_id
end
elseif string.match(itemgender, "^Q%d+$") then
idgender = itemgender
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
gender_requested = true
elseif parameters.formatting == "table" then
for i=0, #qualifierId do
if args["case" .. i] and args["case" .. i] == "gender" then
gender_requested = true
break
end
end
end
if gender_requested then
if feminineGender(idgender or parameters.id) then
parameters.gender = "feminineform"
end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result, result2, result_query
local error
if parameters.list or parameters.formatting == "table" then
-- convert LF to line feed, <br /> may not work on some cases
parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator
parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction
-- i18n separators
parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()
parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain())
-- iterate over all elements and return their value (if existing)
local value, valueq
local sortkey, sortkeyq
local values = {}
local sortkeys = {}
local refs = {}
local rowlist = {} -- rows to list with whitelist or blacklist
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
local reference = {}
if not whitelisted then rowlist[idx] = true end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0")
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
if whitelist["0"] or blacklist["0"] then
local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang})
if whitelist["0"] and whitelist["0"][valueraw or ""] then
rowlist[#values] = true
elseif blacklist["0"] and blacklist["0"][valueraw or ""] then
rowlist[#values] = false
end
end
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j)
local valueq, sortkeyq, valueraw
if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw
valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params)
else
for q in mw.text.gsplit(qual, '%s*OR%s*') do
if string.find(q, ".+/.+") then
valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params)
elseif string.find(q, "^/.+") then
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
-- only first value of a property as alternative to a qualifier
-- multiple values may not be related to a given raw of the table
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
else
valueq, sortkeyq, _ = getValueOfClaim(claim, q, params)
end
if valueq then
qual = q
break
end
end
end
values[#values]["col" .. j] = valueq
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang, ["list"]=params.list})
if valueq then
if whitelist[j] then
for k, v in pairs(whitelist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = true
end
end
elseif blacklist[j] then
for k, v in pairs(blacklist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = false
end
end
elseif ignorevalue[j] then
for k, v in pairs(ignorevalue[j]) do
if v and string.find(valueq, k, 1, true) then
values[#values]["col" .. j] = nil
end
end
elseif selectvalue[j] then
local selected
for k, v in pairs(selectvalue[j]) do
if v and string.find(valueq, k, 1, true) then
selected = true
end
end
if selected == nil then
values[#values]["col" .. j] = nil
end
end
end
end
end
end
else
value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters)
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
end
if not value and showerrors then value = error end
if value then
if (parameters.references or parameters.onlysourced) and claim.references then
reference = claim.references
end
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
sortkeys[#sortkeys]["col0"] = sortkey or value
end
end
-- sort and format results
sortindices = {}
for idx in pairs(values) do
sortindices[#sortindices + 1] = idx
end
if sorting_col then
local sorting_table = mw.text.split(sorting_col, '%D+')
local comparator = function(a, b)
local valuea, valueb
local i = 1
while valuea == valueb and i <= #sorting_table do
valuea = sortkeys[a]["col" .. sorting_table[i]] or ''
valueb = sortkeys[b]["col" .. sorting_table[i]] or ''
i = i + 1
end
if sorting_up then
return valueb > valuea
end
return valueb < valuea
end
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.listmax)
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters)
value = valuerow["col0"]
if parameters.formatting == "table" then
if not rowlist[sortindices[idx]] then
value = nil
else
local rowformatting = rowformat .. "$" -- fake end character added for easy gsub
value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value})
value = mw.ustring.gsub(value, "$R0", reference) -- add reference
for i, _ in ipairs(qualifierId) do
local valueq = valuerow["col" .. i]
if args["rowsubformat" .. i] and isSet(valueq) then
-- add fake end character $
-- gsub $i not followed by a number so $1 doesn't match $10, $11...
-- remove fake end character
valueq = captureEscapes(valueq)
valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1")
valueq = string.sub(valueq, 1, -2)
rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1")
end
valueq = valueq and captureEscapes(valueq) or ''
value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1")
end
value = string.sub(value, 1, -2) -- remove fake end character
value = expandBraces(value, rowformatting)
end
elseif value then
value = expandBraces(value, parameters.formatting)
value = value .. reference
end
if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
break
end
end
end
if args.query == 'num' then
result_query = #result
end
if #result > 0 then
if parameters.formatting == 'table' then
result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element
end
result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat
else
result = ''
end
else
-- return first element
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result then
local ref, valid_ref = getReferences(claim, parameters)
if parameters.onlysourced and valid_ref == false then
result = nil
else
result = result .. ref
end
end
if args.query == 'num' then result_query = result and 1 or 0 end
end
if isSet(result) then
if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then
-- add edit icon, except table added previously and except explicit no-icon internal flag
result = result .. addEditIcon(parameters)
end
else
if showerrors then result = error else result = default end
end
if args.query == 'untranslated' and required and not is_sandbox then
result_query = untranslated
end
return result, result_query or ''
end
-- Local functions for getParentValues -----------------------
local function uc_first(word)
if word == nil then return end
return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2)
end
local function getPropertyValue(id, property, parameter, langs, labelicon, case)
local snaks = mw.wikibase.getBestStatements(id, property)
local mysnak = getSnak(snaks, {1, "mainsnak"})
if mysnak == nil then
return
end
local entity_id
local result = '-' -- default for 'no value'
if mysnak.datavalue then
entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id'])
result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case})
end
return entity_id, result
end
local function getParentObjects(id,
prop_format,
label_format,
languages,
propertySupString,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
grammatical_case,
include_self)
local propertySups = mw.text.split(propertySupString, '[^P%d]')
local maxloop = 10
if upto_number then
maxloop = upto_number
elseif next(upto_label) or next(upto_value) then
maxloop = 50
end
local labels_filter = next(label_show)
local result = {}
local id_value = id
for iter = 1, maxloop do
local link, label, labelwicon, linktext, id_label
for _, propertySup in pairs(propertySups) do
local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case)
if _id_value and _link then id_value = _id_value; link = _link break end
end
if not id_value or not link then break end
if propertyLink then
_, linktext = getPropertyValue(id_value, propertyLink, "label", languages)
if linktext then
link = link .. " (" .. linktext .. ")"
end
end
id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel")
if labelicon0 then
_, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
else
labelwicon = label
end
if labels_filter == nil or (label_show[id_label] or label_show[label]) then
result[#result + 1] = {labelwicon, link}
label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found
end
if upto_label[id_label] or upto_label[label] or upto_value[id_value] then
break
end
end
if last_only then
result = {result[#result]}
end
if include_self then
local label_self, link_self
_, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
link_self, _ = getLabelByLangs(id, languages)
table.insert(result, 1, {label_self, link_self})
end
return result
end
local function parentObjectsToString(result,
rowformat,
cascade,
sorting)
local ret = {}
local first = 1
local last = #result
local iter = 1
if sorting == "-1" then first = #result; last = 1; iter = -1 end
for i = first, last, iter do
local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]})
ret[#ret + 1] = expandBraces(rowtext, rowformat)
end
if cascade then
local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left"
local suffix = ""
for i = 1, #ret do
ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i]
suffix = suffix .. '</li></ul>'
end
ret[#ret] = ret[#ret] .. suffix
end
return ret
end
-- Returns pairs of parent label and property value fetching a recursive tree
function p.getParentValues(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame)
end
local id = getEntityId(args, pargs)
if id == nil then return end
local languages = findLang(args.lang)
local propertySup = getArg(args.property, "P131") --administrative entity
local propertyLabel = getArg(args.label, "P31") --instance
local propertyLink = getArg(args.valuetext)
local property_format = getArg(args.formatting)
local label_format = getArg(args.labelformat, "label")
local upto_number = getArg(args.upto)
local last_only = getArg(args.last_only, false)
local editicon, labelicon = setIcons(args.editicon, pargs.editicon)
local include_self = getArg(args.include_self, false)
local case = getArg(args.case)
local upto_label = {}
for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do
upto_label[q] = true
end
if type(tonumber(upto_number)) == "number" then
upto_number = tonumber(upto_number)
elseif type(upto_number) == 'string' then
upto_number = nil
require(wiki.module_title .. '/debug').track('upto') -- replace upto by uptolabelid
end
local upto_value = {}
for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do
upto_value[q] = true
end
local label_show = {}
for q in string.gmatch(args.showlabelid or '', 'Q%d+') do
label_show[q] = true
end
for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do
if v ~= '' then
label_show[uc_first(v)] = true
require(wiki.module_title .. '/debug').track('labelshow') -- replace labelshow by showlabelid
end
end
local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end
local labelicon0, labelicon1 = labelicon, labelicon
if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then
labelicon0 = false
end
local result = getParentObjects(id,
property_format,
label_format,
languages,
propertySup,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
case,
include_self)
if #result == 0 then return end
local separator = args.separator; if not isSet(separator) then separator = "<br />" end
local sorting = args.sorting; if sorting == "" then sorting = nil end
local cascade = (args.cascade == "true" or args.cascade == "yes")
local ret = parentObjectsToString(result,
rowformat,
cascade,
sorting)
ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages})
return mw.text.listToText(ret, separator, separator)
end
-- Link with a parent label --------------------
function p.linkWithParentLabel(frame)
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame)
end
local args = {}
if frame.args then
for k, v in pairs(frame.args) do -- metatable
args[k] = v
end
else
args = frame -- via require
end
if isSet(args.value) then
return args.value
end
-- get id value of property/qualifier
local largs = mw.clone(args)
largs.list = tonumber(args.list) and args.list or true
largs.formatting = "raw"
largs.separator = "/·/"
largs.editicon = false
local items_list, _ = p.claim(largs)
if not isSet(items_list) then return end
local items_table = mw.text.split(items_list, "/·/", true)
-- get internal link of property/qualifier
if isSet(args.formatting) then
largs.formatting = nil -- default link if defined with any value
else
largs.formatting = "internallink"
end
local link_list, _ = p.claim(largs)
local link_table = mw.text.split(link_list, "/·/", true)
-- get label of parent property
local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"})
if parent_claim == 'monolingualtext' then
largs.formatting = nil
largs.list = 'lang'
else
largs.formatting = "label"
largs.list = false
end
largs.property = args.parent
largs.qualifier = nil
for i, v in ipairs(items_table) do
largs.item = v
local link_label, _ = p.claim(largs)
if isSet(link_label) then
link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
args.editicon, _ = setIcons(args.editicon, pargs.editicon)
args.id = getEntityId(args, pargs)
args.lang = findLang(args.lang)
return mw.text.listToText(link_table) .. addEditIcon(args)
end
-- Calculate number of years old ----------------------------
function p.yearsOld(frame)
if not required and frame.args and isSet(frame:getParent().args.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame)
end
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return end
local lang = mw.language.new('en')
local function getBestDate(id, prop)
local mainsnak = getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak"})
if mainsnak and mainsnak.snaktype then
if mainsnak.snaktype == "somevalue" then
return {time = nil, precision = 0}
elseif mainsnak.snaktype == "value" then
return getSnak(mainsnak, {"datavalue", "value"})
end
end
return {time = nil, precision = nil}
end
local birth = getBestDate(id, 'P569')
if birth.time == nil or birth.precision < 8 then
return
end
local death = getBestDate(id, 'P570')
if death.precision and death.precision < 8 then -- includes somevalue
return
elseif death.time == nil then
death = {time = lang:formatDate('c'), precision = 11} -- current date
end
local dates = {}
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "-(%d%d)-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "-(%d%d)-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
for i, d in ipairs(dates) do
if d.precision == 10 then -- month
d.min.day = 1
local timestamp = string.format("%04d", tostring(math.abs(d.max.year)))
.. string.format("%02d", tostring(d.max.month))
.. "01"
d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day"))
elseif d.precision < 10 then -- year or decade
d.min.day = 1
d.min.month = 1
d.max.day = 31
d.max.month = 12
if d.precision == 8 then -- decade
d.max.year = d.max.year + 9
end
end
end
local function age(d1, d2)
local years = d2.year - d1.year
if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then
years = years - 1
end
if d2.year > 0 and d1.year < 0 then
years = years - 1 -- no year 0
end
return years
end
local old_min = age(dates[1].max, dates[2].min)
local old_max = age(dates[1].min, dates[2].max)
if old_max > 200 then
require(wiki.module_title .. '/debug').track('200yo')
end
local old, old_expr
if old_min == 0 and old_max == 0 then
old = "< 1"
old_max = 1 -- expression in singular
elseif old_min == old_max then
old = old_min
else
old = old_min .. "/" .. old_max
end
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo
local yo_pl = {}
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"]
end
if not isSet(yo_pl[2]) then
local yo_label, _ = getLabelByLangs('Q24564698', langs)
yo_pl = {yo_label, yo_label}
end
yo = mw.language.new(langs[1]):plural(old_max, yo_pl)
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
else
old_expr = old .. ' ' .. yo
end
elseif args.formatting then
old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting)
else
old_expr = old
end
return old_expr
end
-- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked.
function p.getLabel(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame)
end
local id = getEntityId(args, pargs, 1)
if id == nil then return end
local languages = findLang(args.lang)
local labelicon = false
if mw.wikibase.isValidEntityId(id) then
_, labelicon = setIcons(args.editicon, pargs.editicon)
end
local label_icon = ''
local label, lang
if args.label then
label = args.label
else
-- exceptions or labels fixed
local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1]))
if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then
label = labels.infoboxLabelsFromId[id]
end
if label == nil then
label, lang = getLabelByLangs(id, languages)
if label then
if isSet(args.itemgender) then
if feminineGender(args.itemgender) then
label = feminineForm(id, lang) or label
end
local _, items_g = string.gsub(args.itemgender, "Q%d+", "")
if not isSet(args.case) and items_g > 1 then
args.case = "plural"
end
end
label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize
if args.case then
label = case(args.case, label, lang)
end
end
label_icon = addLabelIcon(id, lang, languages[1], labelicon)
end
end
local linked = args.linked
local ret2 = required and untranslated or ''
if isSet(linked) and linked ~= "no" then
local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id)
return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2
else
return (label or id) .. label_icon, ret2
end
end
function p.sitelinks(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
-- arguments
local param = {}
param.id = getEntityId(args, pargs)
if param.id == nil then return end
param.project = getArg(args.project)
param.site = getArg(args.site)
param.sitelang = getArg(args.sitelang)
param.show = getArg(args.formatting, '[[$w:$l:$t|$s:$t]] $i')
param.sep = getArg(args.separator, ', ')
-- fetch sitelinks
local sitelinks_obj = mw.wikibase.getEntity(param.id).sitelinks
local slinks = {} -- do some clean up (commonswiki > commons) and add some data
local iw = {['wikipedia'] = 'w', ['wikibooks'] = 'b', ['wikinews'] = 'n', ['wikiquote'] = 'q',
['wikisource'] = 's', ['wikiversity'] = 'v', ['wikivoyage'] = 'voy', ['wiktionary'] = 'wikt', ['commons'] = 'c',
['meta'] = 'm', ['mediawiki'] = 'mw', ['species'] = 'species', ['wikidata'] = 'd', ['wikifunctions'] = 'f'}
for slink, sdata in pairs(sitelinks_obj) do
-- langcode + wiki, wikibooks, wikinews, wikiquote, wikisource, wikiversity, wikivoyage, wiktionary
local s_lang = string.match(slink, '(%l+)wik[it]')
local s_project = string.match(slink, 'wik[it]%l*')
if slink == 'commonswiki' or slink == 'metawiki' or slink == 'mediawikiwiki'
or slink == 'specieswiki' or slink == 'wikidatawiki' or slink == 'wikifunctionswiki'
then
s_project = string.sub(slink, 1, -5) -- remove -wiki
slinks[s_project] = {['lang'] = 'und', ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiki' then -- restore project full name
slinks[slink] = {['lang'] = s_lang, ['project'] = 'wikipedia', ['iw'] = 'w', ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiktionary' then -- use short site name
s_project = string.sub(slink, 1, -7)
slinks[s_project] = {['lang'] = s_lang, ['project'] = 'wiktionary', ['iw'] = 'wikt', ['title'] = sdata.title, ['badges'] = sdata.badges}
else
slinks[slink] = {['lang'] = s_lang, ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
end
end
-- select requested project, site, sitelang
local slinks_req = {}
if not (param.project or param.site or param.sitelang) then
slinks_req = slinks
else
for pr in string.gmatch(param.project or '', '%l+') do -- lowercase letters, skip separators
for sl, sd in pairs(slinks) do
if sd.project == pr then
slinks_req[sl] = sd
end
end
end
for s in string.gmatch(param.site or '', '%l+') do
for sl, sd in pairs(slinks) do
if sl == s then
slinks_req[sl] = sd
end
end
end
for l in string.gmatch(param.sitelang or '', '%l+') do
for sl, sd in pairs(slinks) do
if sd.lang == l then
slinks_req[sl] = sd
end
end
end
end
-- sort table
local sites_sorted = {}
for sitex in pairs(slinks_req) do
sites_sorted[#sites_sorted + 1] = sitex
end
local sort_project_lang = function(a, b)
local key_a = slinks_req[a].project .. slinks_req[a].lang
local key_b = slinks_req[b].project .. slinks_req[b].lang
return key_a < key_b
end
table.sort(sites_sorted, sort_project_lang)
-- format output
local showtext = {}
local shownum, showbnum = 0, 0
for _, sl in ipairs(sites_sorted) do
local sd = slinks_req[sl]
local show = param.show -- default '[[$w:$l:$t|$s:$t]] $i' iw:lang:title, site:title icon, also $p project
show = string.gsub(show, '$w', sd.iw)
show = string.gsub(show, '$p', sd.project)
if sd.lang == 'und' then
show = string.gsub(show, '$l:?', '')
else
show = string.gsub(show, '$l', sd.lang)
end
show = string.gsub(show, '$t', sd.title)
show = string.gsub(show, '$s', sl)
if next(sd.badges) then
show = string.gsub(show, '$i', '[[File:Article de qualité.svg|15x15px]]')
showbnum = showbnum + 1
else
show = string.gsub(show, ' ?$i', '')
end
if show ~= param.show then
table.insert(showtext, show)
end
shownum = shownum + 1
end
local output
if string.find(param.show, '$[nb]') then
output = string.gsub(param.show, '$n', shownum) -- number of sites
output = string.gsub(output, '$b', showbnum) -- number of badges
else
output = table.concat(showtext, param.sep)
end
return output
end
-- Utilities -----------------------------
-- See also module ../debug.
-- Copied from Module:Wikibase
function p.getSiteLink(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs, 1)
if id == nil then return end
return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or ''))
end
-- Helper function for the default language code used
function p.lang(frame)
local lang = frame and frame.args[1] -- nil via require
return findLang(lang)[1]
end
-- Number of statements
function p.numStatements(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return 0 end
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) then
local largs = {}
for k, v in pairs(pargs) do
largs[k] = v
end
for k, v in pairs(args) do
largs[k] = v
end
largs.query = 'num'
_, num = p.claim(largs)
return num
elseif args[2] then -- qualifier
local qual = mw.text.trim(args[2])
local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'}
if values then
num = mw.text.split(values, '/·/')
end
else
num = mw.wikibase.getBestStatements(id, prop)
end
return #num
end
-- Returns true if property datavalue is found excluding novalue/somevalue
function p.validProperty(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local item = getEntityId(args, pargs)
if item == nil then return end
local property = mw.text.trim(args[1])
local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"})
return prop_data and true or nil
end
function p.editAtWikidata(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local value = isSet(args[1])
if value then return end
local param = {}
param.id = getEntityId(args, pargs)
param.property = args.property
param.lang = findLang(args.lang)
param.editicon, _ = setIcons(args.editicon)
return addEditIcon(param)
end
function p.formatNum(frame)
local val = frame.args[1]
-- If the value is empty or nil, return an empty string immediately to prevent crashes
if val == nil or mw.text.trim(val) == "" then
return ""
end
-- Clean up any extra whitespace from the input value
val = mw.text.trim(val)
local num = tonumber(val)
-- If the value contains brackets like [1], commas, or text, tonumber returns nil.
-- We check for that to prevent the crash and return the raw text instead.
if not num then
return val
end
-- Default to Kashmiri ('ks') if no language code is provided in args[2]
local lang_code = frame.args[2]
if lang_code == nil or mw.text.trim(lang_code) == "" then
lang_code = 'ks'
else
lang_code = mw.text.trim(lang_code)
end
-- Format the valid number using the localized language object
return mw.language.new(lang_code):formatNum(num)
end
return p
3wkv2npoft2zzrved1pfr9fdk8sz5x5
142922
142920
2026-06-26T08:41:40Z
آیات محراج
11062
142922
Scribunto
text/plain
-- version 20260211 from master @cawiki
-- changes from previous version:
-- new function sitelinks
local p = {}
-- Initialization of variables --------------------
local i18n = { -- internationalisation at subpage /i18n
["errors"] = {
["property-not-found"] = "Property not found.",
["qualifier-not-found"] = "Qualifier not found.",
},
["datetime"] = {
-- $1 is a placeholder for the actual number
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = "$1 BCE", -- how print negative years
["ad"] = "$1", -- how print 1st century AD dates
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100000 years", -- precision: hundred thousand years; thousand separators added afterwards
[5] = "$10000 years", -- precision: ten thousand years; thousand separators added afterwards
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs
},
["years-old"] = {"", ""}, -- year(s) old, as in magic word {PLURAL:$1|singular|plural}
-- two values for most languages, up to six values for some languages, examples:
-- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages
-- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic
-- see documentation of PLURAL in your language at [[mw:Help:Magic words#Localization 2]]
["cite"] = { -- cite parameters
["title"] = "title",
["author"] = "author",
["date"] = "date",
["pages"] = "pages",
["language"] = "language",
-- cite web parameters
["url"] = "url",
["website"] = "website",
["access-date"] = "access-date",
["archive-url"] = "archive-url",
["archive-date"] = "archive-date",
["publisher"] = "publisher",
["quote"] = "quote",
-- cite journal parameters
["work"] = "work",
["issue"] = "issue",
["issn"] = "issn",
["doi"] = "doi"
},
-- default local wiki settings
["addpencil"] = false, -- adds a pencil icon linked to Wikidata statement, planned to overwrite by Wikidata Bridge
["categorylabels"] = "", -- Category:Pages with Wikidata labels not translated (void for no local category)
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}, -- additional fallback language codes
["suppressids"] = {}, -- list of Qid values to suppress
["qidlabels"] = true -- show labels as Qid if no fallback translation is available
}
local cases = {} -- functions for local grammatical cases defined at subpage /i18n
local required = ... -- variadic arguments from require function
local wiki =
{
langcode = mw.language.getContentLanguage().code,
module_title = required or mw.getCurrentFrame():getTitle()
}
local untranslated -- used in infobox modules: nil or true
local _ -- variable for unused returned values, avoiding globals
-- Module local functions --------------------------------------------
-- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0
local function tableMerge(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n(lang)
local exist, res = pcall(require, wiki.module_title .. "/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
cases = res.cases
end
if lang ~= wiki.langcode then
exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang)
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
tableMerge(cases, res.cases)
end
end
i18n.suppress = {}
for _, id in ipairs(i18n.suppressids) do
i18n.suppress[id] = true
end
end
-- Table of language codes: requested or default and its fallbacks
local function findLang(langcode)
if mw.language.isKnownLanguageTag(langcode or '') == false then
local cframe = mw.getCurrentFrame()
local pframe = cframe:getParent()
langcode = pframe and pframe.args.lang
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:callParserFunction('int', {'lang'})
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
langcode = wiki.langcode
end
end
end
loadI18n(langcode)
local languages = mw.language.getFallbacksFor(langcode)
table.insert(languages, 1, langcode)
table.insert(languages, 2, "mul") -- see [[d:Help:Default values for labels and aliases]]
if langcode == wiki.langcode then
for _, l in ipairs(i18n.addfallback) do
table.insert(languages, l)
end
end
return languages
end
-- Argument is 'set' when it exists (not nil) or when it is not an empty string.
local function isSet(var)
return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == ''))
end
-- Set local case to a label
local function case(localcase, label, ...)
if not isSet(label) then return label end
if type(localcase) == "function" then
return localcase(label)
elseif localcase == "smallcaps" then
return '<span style="font-variant: small-caps;">' .. label .. '</span>'
elseif cases[localcase] then
return cases[localcase](label, ...)
end
return label
end
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if not ret then return end
ret = ret[v]
end
return ret
end
-- get label with an array of fallback languages
-- mw.wikibase.getLabelWithLang uses lang mul as last fallback, not the first one
local function getLabelByLangs(id, languages)
local label, lang
for _, l in ipairs(languages) do
label = mw.wikibase.getLabelByLang(id, l)
if label then
lang = (l == "mul" and languages[1] or l)
break
end
end
return label, lang
end
-- getBestStatements if bestrank=true, else getAllStatements with no deprecated
local function getStatements(entityId, property, bestrank)
local claims = {}
if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end
if bestrank then
claims = mw.wikibase.getBestStatements(entityId, property)
else
local allclaims = mw.wikibase.getAllStatements(entityId, property)
for _, c in ipairs(allclaims) do
if c.rank ~= "deprecated" then
table.insert(claims, c)
end
end
end
return claims
end
-- Is gender femenine? true or false
local function feminineGender(id)
for idn in string.gmatch(id, "Q%d+") do
local claims = mw.wikibase.getBestStatements(idn or mw.wikibase.getEntityIdForCurrentPage(),'P21')
local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"})
if gender_id == nil or not (gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445") then
-- not female, transgender female or female organism
return false
end
end
return true
end
-- Fetch female form of label
local function feminineForm(id, lang)
local feminine_claims = getStatements(id, 'P2521')
for _, feminine_claim in ipairs(feminine_claims) do
if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then
return feminine_claim.mainsnak.datavalue.value.text
end
end
end
-- Add an icon for no label in requested language
local function addLabelIcon(label_id, lang, uselang, icon)
local ret_lang, ret_icon = '', ''
if icon then
if lang and lang ~= uselang then
ret_lang = " <sup>(" .. lang .. ")</sup>"
end
if label_id and (lang == nil or lang ~= uselang) then
local namespace = ''
if string.sub(label_id, 1, 1) == 'P' then
namespace = 'Property:'
end
ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|class=skin-invert|"
.. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain()
.. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]"
untranslated = true
end
if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then
ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]')
end
end
return ret_lang .. ret_icon
end
-- editicon values: true/false (no=false), right, void defaults to i18n.addpencil
-- labelicon only by parameter
local function setIcons(arg, parg)
local val = arg == nil and parg or arg
local edit_icon, label_icon
if not isSet(val) then
edit_icon, label_icon = i18n.addpencil, true
elseif val == false or val == "false" or val == "no" then
edit_icon, label_icon = false, false
else
edit_icon, label_icon = val, true
end
return edit_icon, label_icon
end
-- Add an icon for editing a statement with requirements for future Wikidata Bridge
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or ''
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>'
.. "[[File:Arbcom ru editing.svg|10px|baseline|"
.. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata')
.. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]"
.. "</span>"
if isSet(i18n.categoryprop) then
ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]"
end
end
return ret
end
-- add edit icon to the last element of a table
local function addEditIconTable(thetable, parameters)
if #thetable == 0 or parameters.editicon == false then
return thetable
end
local last_element = thetable[#thetable]
local the_icon = addEditIcon(parameters)
-- add it before last html closing tags
local tags = ''
local rev_element = string.reverse(last_element)
for tag in string.gmatch(rev_element, '(>%l+/<)') do
if string.match(rev_element, '^' .. tags .. tag) then
tags = tags .. tag
else
break
end
end
local last_tags = string.reverse(tags)
local offset = string.find(last_element, last_tags .. '$')
if offset then
thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags
else
thetable[#thetable] = last_element .. the_icon
end
return thetable
end
-- Escape Lua captures
local function captureEscapes(text)
return mw.ustring.gsub(text, "(%%%d)", "%%%1")
end
-- expandTemplate or callParserFunction
local function expandBraces(text, formatting)
if text == nil or formatting == nil then return text end
-- only expand braces if provided in argument, not included in value as in Q1164668
if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end
if type(text) ~= "string" then
text = tostring(text)
end
for braces in mw.ustring.gmatch(text, "{{(.-)}}") do
local parts = mw.text.split(braces, "|")
local title_part = parts[1]
local parameters = {}
for i = 2, #parts do
local subparts = mw.ustring.find(parts[i], "=")
if subparts then
local param_name = mw.ustring.sub(parts[i], 1, subparts - 1)
local param_value = mw.ustring.sub(parts[i], subparts + 1, -1)
-- reconstruct broken links by parts
if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then
parameters[param_name] = param_value
local part_next = i + 1
while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do
parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next]
part_next = part_next + 1
end
else
parameters[param_name] = param_value
end
elseif not mw.ustring.find(parts[i], "]]", 1, true) then
table.insert(parameters, parts[i])
end
end
local braces_expanded
if mw.ustring.find(title_part, ":")
and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template:
then
braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters}
elseif title_part == "!" then
-- template:! may be deleted locally, now provided by MediaWiki
-- although it works, it raises a Lua internal error
braces_expanded = "|"
else
braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters}
end
braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters
braces_expanded = captureEscapes(braces_expanded)
text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded)
end
return text
end
-- format data type math
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
end
-- format data type musical-notation
local function printDatatypeMusical(data, formatting)
local attr = {}
if formatting == 'sound' then
attr.sound = 1
end
return mw.getCurrentFrame():extensionTag('score', data, attr)
end
-- format data type string
local function printDatatypeString(data, parameters)
if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting)
elseif parameters.case then
return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id))
end
local data_number = string.match(data, "^%d+")
if data_number then -- sort key by initial number and remaining string
local sortkey = string.format("%019d", data_number * 1000)
return data, sortkey .. string.sub(data, #data_number + 1)
end
return data
end
-- format data type tabular-data
local function printDatatypeTabular(data, parameters)
local icon
if parameters.formatting == 'raw' then
icon = "no-icon"
data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data
end
return printDatatypeString(data, parameters), icon
end
-- format data type url
local function printDatatypeUrl(data, parameters)
if parameters.formatting == 'weblink' then
local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/')
local label = string.gsub(label_parts[3], '^www%.', '')
if #label_parts > 3 then
label = label .. '…'
end
return '[' .. data .. ' ' .. label .. ']'
end
return printDatatypeString(data, parameters)
end
-- format data type external-id
local function printDatatypeExternal(data, parameters)
if parameters.formatting == 'externalid' then
local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL
local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"})
if p_link_pattern then
local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data})
return '[' .. p_link .. ' ' .. data .. ']'
end
end
return printDatatypeString(data, parameters)
end
-- format data type commonsMedia and geo-shape
local function printDatatypeMedia(data, parameters)
local icon
if not string.find((parameters.formatting or ''), '$1', 1, true) then
icon = "no-icon"
if not string.find(data, '^Data:') then
data = mw.uri.encode(data, 'PATH') -- encode special characters in filename
end
end
return printDatatypeString(data, parameters), icon
end
-- format data type globe-coordinate
local function printDatatypeCoordinate(data, formatting)
local function globes(globe_id)
-- parameter globe in coordinates accepted by GeoHack
-- see [[w:en:Special:PrefixIndex/Template:GeoTemplate]]
local globes = {['Q3343'] = 'ariel', ['Q3134'] = 'callisto', ['Q596'] = 'ceres',
['Q6604'] = 'charon', ['Q7548'] = 'deimos', ['Q15040'] = 'dione', ['Q2'] = 'earth',
['Q3303'] = 'enceladus', ['Q3143'] = 'europa', ['Q3169'] = 'ganymede',
['Q15037'] = 'hyperion', ['Q17958'] = 'iapetus', ['Q3123'] = 'io',
['Q319'] = 'jupiter', ['Q111'] = 'mars', ['Q308'] = 'mercury', ['Q15034'] = 'mimas',
['Q3352'] = 'miranda', ['Q405'] = 'moon', ['Q3332'] = 'oberon', ['Q7547'] = 'phobos',
['Q17975'] = 'phoebe', ['Q339'] = 'pluto', ['Q15050'] = 'rhea', ['Q15047'] = 'tethys',
['Q2565'] = 'titan', ['Q3322'] = 'titania', ['Q3359'] = 'triton',
['Q3338'] = 'umbriel', ['Q313']='venus', ['Q3030']='vesta'}
return globes[globe_id]
end
local function roundPrecision(num, prec)
if prec == nil or prec <= 0 then return num end
local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001
return math.floor(num / sig + 0.5) * sig
end
local precision = data.precision
local latitude = roundPrecision(data.latitude, precision)
local longitude = roundPrecision(data.longitude, precision)
if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then
local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude})
if string.find(formatting, '$globe', 1, true) then
local myglobe = 'earth'
if isSet(data.globe) then
local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2
myglobe = globes(globenum) or 'earth'
end
ret = mw.ustring.gsub(ret, '$globe', myglobe)
end
return expandBraces(ret, formatting)
elseif formatting == 'latitude' then
return latitude, "no-icon"
elseif formatting == 'longitude' then
return longitude, "no-icon"
elseif formatting == 'dimension' then
return data.dimension, "no-icon"
else --default formatting='globe'
if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then
return 'earth', "no-icon"
else
local globenum = mw.text.split(data.globe, 'entity/')[2]
return globes(globenum) or globenum, "no-icon"
end
end
end
-- Local functions for data value quantity
local function unitSymbol(id, lang) -- get unit symbol or code
local unit_symbol = ''
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true)
end
if unit_symbol == '' then
-- fetch it
local claims = mw.wikibase.getBestStatements(id, 'P5061')
if #claims > 0 then
local langclaims = {}
for _, snak in ipairs(claims) do
local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"})
if snak_language and not langclaims[snak_language] then -- just the first one by language
langclaims[snak_language] = snak.mainsnak.datavalue.value.text
end
end
for _, l in ipairs(lang) do
if langclaims[l] then
return langclaims[l]
end
end
end
end
return unit_symbol
end
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]"
else
suffix = unit_symbol
end
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit label
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]"
end
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
end
end
if suffix ~= '' then
suffix = ' ' .. suffix
end
return suffix
end
local function roundDefPrecision(in_num, factor)
-- rounds out_num with significant figures of in_num (default precision)
local out_num = in_num * factor
if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN
return out_num
end
-- first, count digits after decimal mark, handling cases like '12.345e6'
local exponent, prec
local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
-- significant figures
local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001
local out_bracket = in_bracket * out_num / in_num
out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001
-- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound)
return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket
end
-- format data type quantity
local function printDatatypeQuantity(data, parameters)
local amount = data.amount
amount = mw.ustring.gsub(amount, "%+", "")
local suffix = ""
local conv_amount, conv_suffix
if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then
local unit_id = data.unit
unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1)
if string.sub(unit_id, 1, 1) == "Q" then
suffix = getUnit(amount, unit_id, parameters)
local convert_to
if parameters.convert == "default" or parameters.convert == "default2" then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if exist and units.convert_default and next(units.convert_default) ~= nil then
convert_to = units.convert_default[unit_id]
end
elseif string.sub(parameters.convert or '', 1, 1) == "Q" then
convert_to = parameters.convert
elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then
convert_to = 'Q11574' -- seconds
end
if convert_to and convert_to ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
}
if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount))
conv_amount = math.floor(tonumber(amount_f) + 0.5)
else
local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit
table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit
for _, conv in ipairs(conversions) do
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then
conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount))
break
end
end
end
end
if conv_amount then
conv_suffix = getUnit(conv_amount, convert_to, parameters)
end
elseif parameters.convert == 'M' then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if wiki.langcode == parameters.lang[1]
and exist and units.convert2M and type(units.convert2M) == "function"
then
conv_amount, conv_suffix = units.convert2M(amount)
conv_suffix = (conv_suffix or "").. suffix
elseif tonumber(amount) > 10^8 then
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. mw.text.trim(suffix)
end
end
if conv_amount and parameters.formatting == 'raw' then
amount = conv_amount
suffix = ""
conv_amount = nil
end
end
end
local lang_obj = mw.language.new(parameters.lang[1])
local sortkey = string.format("%019d", tonumber(amount) * 1000)
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == 'duration' then
return lang_obj:formatDuration(sec)
elseif parameters.formatting == 'durationm:s' then
local mm = math.floor(sec / 60)
local ss = sec - (mm * 60)
return string.format("%02d:%02d", mm, ss)
else -- durationhms or durationh:m:s
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals
local duration = ''
for i, v in ipairs(intervals) do
if parameters.formatting == 'durationh:m:s' then
if i == 1 and sec2table[v] then
duration = duration .. sec2table[v] .. ":"
elseif i == 2 then
duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":"
elseif i == 3 then
local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0))
duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str
end
elseif sec2table[v] then
duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "")
end
end
return duration
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id))
elseif parameters.formatting ~= 'raw' then
if parameters.numformat then
amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount)))
else
amount = lang_obj:formatNum(tonumber(amount))
end
end
if conv_amount then
local conv_sortkey = string.format("%019d", conv_amount * 1000)
conv_amount = lang_obj:formatNum(conv_amount)
if parameters.convert == 'default2' then
return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey
else
return conv_amount .. conv_suffix, conv_sortkey
end
elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern
amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount})
end
return amount .. suffix, sortkey
end
-- format data type time
local function printDatatypeTime(data, parameters)
-- Dates and times are stored in ISO 8601 format
local timestamp = data.time
if parameters.formatting == "raw" then
return timestamp, timestamp
end
local post_format
local calendar_add = ""
local precision = data.precision or 11
if string.sub(timestamp, 1, 1) == '-' then
post_format = i18n.datetime["bc"]
elseif string.sub(timestamp, 2, 3) == '00' then
post_format = i18n.datetime["ad"]
elseif precision > 8 then
-- calendar model
local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"}
local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2]
if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian")
or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian")
then
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end
local function formatTime(form, stamp)
local pattern
if type(form) == "function" then
pattern = form(stamp)
else
pattern = form
end
stamp = tostring(stamp)
if mw.ustring.find(pattern, "$1") then
return mw.ustring.gsub(pattern, "$1", stamp)
elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0
stamp = '+' .. string.sub(stamp, 2)
elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number
stamp = string.format("%04d", stamp)
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
end
local function postFormat(t)
if post_format and mw.ustring.find(post_format, "$1") then
return mw.ustring.gsub(post_format, "$1", t)
end
return t
end
local intyear = tonumber(string.match(timestamp, "[+-](%d+)"))
local ret = ""
if precision <= 5 then -- precision is 10000 years or more
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = formatTime(i18n.datetime[precision], y2)
if post_format == i18n.datetime["bc"] then
ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
local ret_number = string.match(ret, "%d+")
if ret_number ~= nil then
ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number)))
end
elseif precision == 6 or precision == 7 then -- millennia or centuries
local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1
ret = formatTime(i18n.datetime[precision], card)
ret = postFormat(ret)
elseif precision == 8 then -- decades
local card = math.floor(math.abs(intyear) / 10) * 10
ret = formatTime(i18n.datetime[8], card)
ret = postFormat(ret)
elseif intyear > 9999 then -- not a valid timestamp
return
elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year
ret = formatTime(i18n.datetime[9], intyear)
ret = postFormat(ret) .. calendar_add
elseif precision == 10 then -- month
ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month
ret = postFormat(ret) .. calendar_add
else -- precision 11, day
ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp)
ret = postFormat(ret) .. calendar_add
end
return ret, timestamp
end
-- format data value wikibase-entityid with data types wikibase-item or wikibase-property
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local entity_page = 'Special:EntityPage/' .. entity_id
local label, lang = getLabelByLangs(entity_id, parameters.lang)
local sitelink = mw.wikibase.getSitelink(entity_id)
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.gender == 'feminineform' then
labelcase = feminineForm(entity_id, lang) or labelcase
end
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
if labelcase == nil and i18n.qidlabels == false then
return
end
local ret1, ret2
if parameter == 'label' then
ret1 = labelcase or entity_id
ret2 = labelcase or entity_id
elseif parameter == 'sitelink' then
ret1 = (sitelink or 'd:' .. entity_page)
ret2 = sitelink or entity_id
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id)
ret1 = expandBraces(ret1, parameter)
ret2 = labelcase or entity_id
else
if parameter == "ucfirst" or parameter == "ucinternallink" then
if labelcase and lang then
labelcase = mw.language.new(lang):ucfirst(labelcase)
end
-- only first of a list, reset formatting for next ones
if parameter == "ucinterlanllink" then
parameters.formatting = 'internallink'
else
parameters.formatting = nil -- default format
end
end
if sitelink then
ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]'
ret2 = labelcase
elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then
ret1 = '[[' .. label .. '|' .. labelcase .. ']]'
ret2 = labelcase
else
ret1 = '[[d:' .. entity_page .. '|' .. (labelcase or entity_id) .. ']]'
ret2 = labelcase or entity_id
end
end
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
-- format data type wikibase-lexeme
local function printDatatypeLexeme(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local lemmas = mw.wikibase.getEntity(entity_id):getLemmas()
if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then
return
end
local ret = '[[d:Special:EntityPage/' .. entity_id .. '|' .. lemmas[1][1] .. ']]'
if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then
ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>"
end
return ret, entity_id
end
-- format data type monolingualtext
local function printDatatypeMonolingual(data, parameters)
-- data fields: language [string], text [string]
local valid_lang = {[parameters.lang[1]] = true, ["mul"] = true}
if parameters.list == "lang" and not valid_lang[data["language"]] then
return
elseif parameters.list == "notlang" and valid_lang[data["language"]] then
return
elseif parameters.formatting == "language" or parameters.formatting == "text" then
return data[parameters.formatting]
end
local result = data["text"]
valid_lang = {[wiki.langcode] = true, ["mul"] = true}
if not valid_lang[data["language"]] then
result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]})
end
if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then
-- output format defined with $text, $language
result = mw.ustring.gsub(parameters.formatting, '$text', result)
result = mw.ustring.gsub(result, '$language', data["language"])
end
return result
end
local function getSnakValue(snak, parameters)
parameters.editbridge = false
if snak.snaktype == 'value' then -- see Special:ListDatatypes
-- data value string
if snak.datatype == "string" then
parameters.editbridge = true -- Wikidata Bridge currently only for string values
return printDatatypeString(snak.datavalue.value, parameters)
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "tabular-data" then
return printDatatypeTabular(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
elseif snak.datatype == "external-id" then
return printDatatypeExternal(snak.datavalue.value, parameters)
elseif snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- data types other than string value
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
if i18n.suppress[snak.datavalue.value.id] then
return
end
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'wikibase-lexeme' then
return printDatatypeLexeme(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
elseif snak.datatype == "globe-coordinate" then
return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting)
elseif snak.datatype == "quantity" then
return printDatatypeQuantity(snak.datavalue.value, parameters)
elseif snak.datatype == "time" then
return printDatatypeTime(snak.datavalue.value, parameters)
end
elseif snak.snaktype == 'novalue' then
if parameters.formatting == 'raw' or parameters.shownovalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw' or parameters.showsomevalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
return mw.wikibase.renderSnak(snak)
end
local function printError(key)
return '<span class="error">' .. i18n.errors[key] .. '</span>'
end
local function getQualifierSnak(claim, qualifierId, parameters)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then
if qualifier[1].datatype == "monolingualtext" then
-- iterate over monolingualtext qualifiers to get languages
local qual_lang, qual_mul
for idx in pairs(qualifier) do
qual_lang = getSnak(qualifier[idx], {"datavalue", "value", "language"})
if qual_lang == parameters.lang[1] then
return qualifier[idx] -- return local language if found
elseif qual_lang == "mul" then
qual_mul = qualifier[idx]
end
end
return qual_mul -- else return multilingual
elseif parameters.list then
return qualifier
else
return qualifier[1]
end
end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameters)
local snak, error = getQualifierSnak(claim, qualifierId, parameters)
if not snak then
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.listmax)
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
if maxvals and maxvals == #result then break end
end
return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1]
else -- a property or a qualifier
return getSnakValue(snak, parameters)
end
end
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local value, sortkey, valueraw = {}, {}, {}
local parent_raw, value_text
if qids[1] == parameters.property then
parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
for idx, p_qid in ipairs(parent_qids) do
local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2])
if parent_claims[1] then
value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters)
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
if value[1] then
value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction)
end
return value_text, sortkey[1], valueraw[1]
end
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not (parameters.references or parameters.onlysourced) then
return '', false
end
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
local notproperref = {
["P143"] = true, -- imported from
["P3452"] = true, -- inferred from
["P887"] = true, -- based on heuristic
["P4656"] = true -- Wikimedia import URL
}
local result = {}
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
local refs = {}
local validref = true
local ref_id
-- traverse through all parts of the current reference
for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do
for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do
if notproperref[snakkey] then -- not a proper reference
validref = false
break
end
end
if validref then
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
if snakval[snakidx].datatype == 'external-id' then
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '')
else
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '')
end
end
refs[snakkey] = refparts
refparts = nil
if snakkey == "P248" then -- stated in
ref_id = getSnak(snakval, {1, "datavalue", "value", "id"})
end
end
end
-- fill missing values with parent item
if ref_id then
local function refParent(qid, pid, formatting)
local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"})
return snak and getSnakValue(snak, {formatting=formatting, lang=lang})
end
refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author
refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work
refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher
refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date
refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in
refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s)
refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue
refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN
refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI
end
-- get title of local templates for citing references
local template_web = mw.wikibase.getSitelink('Q5637226') or ""
template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front
local template_journal = mw.wikibase.getSitelink('Q5624899') or ""
template_journal = mw.text.split(template_journal, ":")[2]
local citeParams = {}
if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then
-- if both "reference URL" and "title" (or "stated in") are present, then use cite web template
citeParams[i18n['cite']['url']] = refs['P854']
if refs['P248'] and refs['P1476'] == nil then
citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]")
else
citeParams[i18n['cite']['title']] = refs['P1476']
citeParams[i18n['cite']['website']] = refs['P248']
end
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['publisher']] = refs['P123']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['access-date']] = refs['P813']
citeParams[i18n['cite']['archive-url']] = refs['P1065']
citeParams[i18n['cite']['archive-date']] = refs['P2960']
citeParams[i18n['cite']['quote']] = refs['P1683']
refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams}
elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then
-- if both "published in" and "title" (or "stated in") are present, then use cite journal template
citeParams[i18n['cite']['work']] = refs['P1433']
citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248']
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['issue']] = refs['P433']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['issn']] = refs['P236']
citeParams[i18n['cite']['doi']] = refs['P356']
refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams}
elseif validref then
-- raw ouput
local snaksorder = claim.references[ref]["snaks-order"]
local function indexed(a)
for _, b in ipairs(snaksorder) do
if b == a then return true end
end
return false
end
for k, _ in pairs(refs or {}) do
if not indexed(k) then
table.insert(snaksorder, k)
end
end
local italics = "''"
local ref_label
for _, k in ipairs(snaksorder) do
if refs[k] then
refparts = refparts and refparts .. " " or ""
ref_label = case('infoboxlabel', getLabelByLangs(k, lang) or '')
refparts = refparts .. mw.ustring.gsub(ref_label, "^%l", mw.ustring.upper) .. ": "
refparts = refparts .. italics .. refs[k] .. italics .. "."
italics = ""
end
end
end
if refparts then
local ref_name = claim.references[ref].hash
result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name})
if maxrefs and maxrefs == #result then break end
end
end
if #result > 0 then
if parameters.references then
if isSet(i18n.categoryref) then
result[#result + 1] = "[[" ..i18n.categoryref .. "]]"
end
return table.concat(result), true
else
return '', true
end
end
return '', false
end
-- Set lists of filtered values
local function setFilterLists(num_qual, args)
local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}}
for i = 0, num_qual do
for k, _ in pairs(lists) do
if isSet(args[k .. i]) then
lists[k][tostring(i)] = {}
local pattern = 'Q%d+'
if string.sub(args[k .. i], 1, 1) ~= 'Q' then
pattern = '[^%p%s]+'
end
for q in string.gmatch(args[k .. i], pattern) do
lists[k][tostring(i)][q] = true
end
end
end
end
return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue']
end
local function tableParameters(args, parameters, column)
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
column_params.case = args["case" .. column]
end
return column_params
end
local function getEntityId(args, pargs, unnamed)
pargs = pargs or {}
local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil)
if not isSet(id) then
id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil)
end
if isSet(id) then
if string.find(id, ":") then -- remove prefix as Property:Pid
id = mw.text.split(id, ":")[2]
end
else
id = mw.wikibase.getEntityIdForCurrentPage()
end
return id
end
local function getArg(value, default, aliases)
if type(value) == 'boolean' then return value
elseif value == "false" or value == "no" then return false
elseif value == "true" or value == "yes" then return true
elseif value and aliases and aliases[value] then return aliases[value]
elseif isSet(value) then return value
elseif default then return default
else return nil
end
end
-- Main function claim ---------------------------------------------
-- on debug console use: =p.claim{item="Q...", property="P...", ...}
function p.claim(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local is_sandbox = isSet(pargs.sandbox)
if not required and is_sandbox then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame)
end
--If a value is already set, use it
if isSet(args.value) then
if args.value == 'NONE' then
return
else
return args.value
end
end
-- arguments
local parameters = {}
parameters.id = getEntityId(args, pargs)
if parameters.id == nil then return end
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))
local i = 2
while isSet(args["qualifier" .. i]) do
qualifierId[i] = string.upper(args["qualifier" .. i])
i = i + 1
end
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.numformat = getArg(args.numformat)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.listmax = args.listmax
parameters.listrank = getArg(args.listrank)
if type(parameters.list) == "number" then -- backwards compatibility
parameters.listmax = parameters.listmax or parameters.list
parameters.list = true
elseif parameters.list == "bestrank" then
parameters.listrank = parameters.listrank or "bestrank"
parameters.list = true
end
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.showsomevalue = getArg(args.showsomevalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator = getArg(args.qseparator, parameters.separator)
parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction)
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references = getArg(args.references, false)
parameters.onlysourced = getArg(args.onlysourced, false)
local showerrors = args.showerrors
local default = args.default
if default then showerrors = nil end
parameters.lang = findLang(args.lang)
if parameters.formatting == "raw" then
parameters.editicon, parameters.labelicon = false, false
else
parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand
end
-- fetch property
local claims = {}
local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang'
for p in string.gmatch(parameters.property, 'P[%d/P]+') do -- P123 or P45/P67
if string.find(p, ".+/.+") then
local props = mw.text.split(p, "/")
local claims_child = {}
claims_child = getStatements(parameters.id, props[1], bestrank)
if #claims_child > 0 then
local parent_id, _, _ = getValueOfClaim(claims_child[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
if string.sub(parent_id or '', 1, 1) == "Q" then
claims = getStatements(parent_id, props[2], bestrank)
if #claims > 0 then
parameters.property = props[1]
break
end
end
end
else
claims = getStatements(parameters.id, p, bestrank)
if #claims > 0 then
parameters.property = p
break
end
end
end
if #claims == 0 then
local ret = showerrors and printError("property-not-found") or default
return ret, args.query == 'num' and 0 or ''
end
-- defaults for table
local preformat, postformat = "", ""
local whitelisted = false
local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {}
if parameters.formatting == "table" then
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain())
parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator)
if not rowformat then
rowformat = "$0 ($1"
i = 2
while qualifierId[i] do
rowformat = rowformat .. ", $" .. i
i = i + 1
end
rowformat = rowformat .. ")"
elseif mw.ustring.find(rowformat, "^[*#]") then
parameters.separator = "</li><li>"
parameters.conjunction = "</li><li>"
if mw.ustring.match(rowformat, "^[*#]") == "*" then
preformat = "<ul><li>"
postformat = "</li></ul>"
else
preformat = "<ol><li>"
postformat = "</li></ol>"
end
rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "")
end
-- set lists of filtered values
whitelist, blacklist, ignorevalue, selectvalue = setFilterLists(#qualifierId, args)
local next = next
if next(whitelist) ~= nil then whitelisted = true end
end
-- set feminine case if gender is requested
local itemgender = args.itemgender
local idgender
if itemgender then
if string.match(itemgender, "^P%d+$") then
local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"})
if snak_id then
idgender = snak_id
end
elseif string.match(itemgender, "^Q%d+$") then
idgender = itemgender
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
gender_requested = true
elseif parameters.formatting == "table" then
for i=0, #qualifierId do
if args["case" .. i] and args["case" .. i] == "gender" then
gender_requested = true
break
end
end
end
if gender_requested then
if feminineGender(idgender or parameters.id) then
parameters.gender = "feminineform"
end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result, result2, result_query
local error
if parameters.list or parameters.formatting == "table" then
-- convert LF to line feed, <br /> may not work on some cases
parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator
parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction
-- i18n separators
parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()
parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain())
-- iterate over all elements and return their value (if existing)
local value, valueq
local sortkey, sortkeyq
local values = {}
local sortkeys = {}
local refs = {}
local rowlist = {} -- rows to list with whitelist or blacklist
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
local reference = {}
if not whitelisted then rowlist[idx] = true end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0")
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
if whitelist["0"] or blacklist["0"] then
local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang})
if whitelist["0"] and whitelist["0"][valueraw or ""] then
rowlist[#values] = true
elseif blacklist["0"] and blacklist["0"][valueraw or ""] then
rowlist[#values] = false
end
end
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j)
local valueq, sortkeyq, valueraw
if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw
valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params)
else
for q in mw.text.gsplit(qual, '%s*OR%s*') do
if string.find(q, ".+/.+") then
valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params)
elseif string.find(q, "^/.+") then
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
-- only first value of a property as alternative to a qualifier
-- multiple values may not be related to a given raw of the table
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
else
valueq, sortkeyq, _ = getValueOfClaim(claim, q, params)
end
if valueq then
qual = q
break
end
end
end
values[#values]["col" .. j] = valueq
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang, ["list"]=params.list})
if valueq then
if whitelist[j] then
for k, v in pairs(whitelist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = true
end
end
elseif blacklist[j] then
for k, v in pairs(blacklist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = false
end
end
elseif ignorevalue[j] then
for k, v in pairs(ignorevalue[j]) do
if v and string.find(valueq, k, 1, true) then
values[#values]["col" .. j] = nil
end
end
elseif selectvalue[j] then
local selected
for k, v in pairs(selectvalue[j]) do
if v and string.find(valueq, k, 1, true) then
selected = true
end
end
if selected == nil then
values[#values]["col" .. j] = nil
end
end
end
end
end
end
else
value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters)
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
end
if not value and showerrors then value = error end
if value then
if (parameters.references or parameters.onlysourced) and claim.references then
reference = claim.references
end
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
sortkeys[#sortkeys]["col0"] = sortkey or value
end
end
-- sort and format results
sortindices = {}
for idx in pairs(values) do
sortindices[#sortindices + 1] = idx
end
if sorting_col then
local sorting_table = mw.text.split(sorting_col, '%D+')
local comparator = function(a, b)
local valuea, valueb
local i = 1
while valuea == valueb and i <= #sorting_table do
valuea = sortkeys[a]["col" .. sorting_table[i]] or ''
valueb = sortkeys[b]["col" .. sorting_table[i]] or ''
i = i + 1
end
if sorting_up then
return valueb > valuea
end
return valueb < valuea
end
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.listmax)
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters)
value = valuerow["col0"]
if parameters.formatting == "table" then
if not rowlist[sortindices[idx]] then
value = nil
else
local rowformatting = rowformat .. "$" -- fake end character added for easy gsub
value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value})
value = mw.ustring.gsub(value, "$R0", reference) -- add reference
for i, _ in ipairs(qualifierId) do
local valueq = valuerow["col" .. i]
if args["rowsubformat" .. i] and isSet(valueq) then
-- add fake end character $
-- gsub $i not followed by a number so $1 doesn't match $10, $11...
-- remove fake end character
valueq = captureEscapes(valueq)
valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1")
valueq = string.sub(valueq, 1, -2)
rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1")
end
valueq = valueq and captureEscapes(valueq) or ''
value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1")
end
value = string.sub(value, 1, -2) -- remove fake end character
value = expandBraces(value, rowformatting)
end
elseif value then
value = expandBraces(value, parameters.formatting)
value = value .. reference
end
if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
break
end
end
end
if args.query == 'num' then
result_query = #result
end
if #result > 0 then
if parameters.formatting == 'table' then
result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element
end
result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat
else
result = ''
end
else
-- return first element
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result then
local ref, valid_ref = getReferences(claim, parameters)
if parameters.onlysourced and valid_ref == false then
result = nil
else
result = result .. ref
end
end
if args.query == 'num' then result_query = result and 1 or 0 end
end
if isSet(result) then
if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then
-- add edit icon, except table added previously and except explicit no-icon internal flag
result = result .. addEditIcon(parameters)
end
else
if showerrors then result = error else result = default end
end
if args.query == 'untranslated' and required and not is_sandbox then
result_query = untranslated
end
return result, result_query or ''
end
-- Local functions for getParentValues -----------------------
local function uc_first(word)
if word == nil then return end
return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2)
end
local function getPropertyValue(id, property, parameter, langs, labelicon, case)
local snaks = mw.wikibase.getBestStatements(id, property)
local mysnak = getSnak(snaks, {1, "mainsnak"})
if mysnak == nil then
return
end
local entity_id
local result = '-' -- default for 'no value'
if mysnak.datavalue then
entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id'])
result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case})
end
return entity_id, result
end
local function getParentObjects(id,
prop_format,
label_format,
languages,
propertySupString,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
grammatical_case,
include_self)
local propertySups = mw.text.split(propertySupString, '[^P%d]')
local maxloop = 10
if upto_number then
maxloop = upto_number
elseif next(upto_label) or next(upto_value) then
maxloop = 50
end
local labels_filter = next(label_show)
local result = {}
local id_value = id
for iter = 1, maxloop do
local link, label, labelwicon, linktext, id_label
for _, propertySup in pairs(propertySups) do
local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case)
if _id_value and _link then id_value = _id_value; link = _link break end
end
if not id_value or not link then break end
if propertyLink then
_, linktext = getPropertyValue(id_value, propertyLink, "label", languages)
if linktext then
link = link .. " (" .. linktext .. ")"
end
end
id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel")
if labelicon0 then
_, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
else
labelwicon = label
end
if labels_filter == nil or (label_show[id_label] or label_show[label]) then
result[#result + 1] = {labelwicon, link}
label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found
end
if upto_label[id_label] or upto_label[label] or upto_value[id_value] then
break
end
end
if last_only then
result = {result[#result]}
end
if include_self then
local label_self, link_self
_, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
link_self, _ = getLabelByLangs(id, languages)
table.insert(result, 1, {label_self, link_self})
end
return result
end
local function parentObjectsToString(result,
rowformat,
cascade,
sorting)
local ret = {}
local first = 1
local last = #result
local iter = 1
if sorting == "-1" then first = #result; last = 1; iter = -1 end
for i = first, last, iter do
local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]})
ret[#ret + 1] = expandBraces(rowtext, rowformat)
end
if cascade then
local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left"
local suffix = ""
for i = 1, #ret do
ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i]
suffix = suffix .. '</li></ul>'
end
ret[#ret] = ret[#ret] .. suffix
end
return ret
end
-- Returns pairs of parent label and property value fetching a recursive tree
function p.getParentValues(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame)
end
local id = getEntityId(args, pargs)
if id == nil then return end
local languages = findLang(args.lang)
local propertySup = getArg(args.property, "P131") --administrative entity
local propertyLabel = getArg(args.label, "P31") --instance
local propertyLink = getArg(args.valuetext)
local property_format = getArg(args.formatting)
local label_format = getArg(args.labelformat, "label")
local upto_number = getArg(args.upto)
local last_only = getArg(args.last_only, false)
local editicon, labelicon = setIcons(args.editicon, pargs.editicon)
local include_self = getArg(args.include_self, false)
local case = getArg(args.case)
local upto_label = {}
for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do
upto_label[q] = true
end
if type(tonumber(upto_number)) == "number" then
upto_number = tonumber(upto_number)
elseif type(upto_number) == 'string' then
upto_number = nil
require(wiki.module_title .. '/debug').track('upto') -- replace upto by uptolabelid
end
local upto_value = {}
for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do
upto_value[q] = true
end
local label_show = {}
for q in string.gmatch(args.showlabelid or '', 'Q%d+') do
label_show[q] = true
end
for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do
if v ~= '' then
label_show[uc_first(v)] = true
require(wiki.module_title .. '/debug').track('labelshow') -- replace labelshow by showlabelid
end
end
local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end
local labelicon0, labelicon1 = labelicon, labelicon
if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then
labelicon0 = false
end
local result = getParentObjects(id,
property_format,
label_format,
languages,
propertySup,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
case,
include_self)
if #result == 0 then return end
local separator = args.separator; if not isSet(separator) then separator = "<br />" end
local sorting = args.sorting; if sorting == "" then sorting = nil end
local cascade = (args.cascade == "true" or args.cascade == "yes")
local ret = parentObjectsToString(result,
rowformat,
cascade,
sorting)
ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages})
return mw.text.listToText(ret, separator, separator)
end
-- Link with a parent label --------------------
function p.linkWithParentLabel(frame)
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame)
end
local args = {}
if frame.args then
for k, v in pairs(frame.args) do -- metatable
args[k] = v
end
else
args = frame -- via require
end
if isSet(args.value) then
return args.value
end
-- get id value of property/qualifier
local largs = mw.clone(args)
largs.list = tonumber(args.list) and args.list or true
largs.formatting = "raw"
largs.separator = "/·/"
largs.editicon = false
local items_list, _ = p.claim(largs)
if not isSet(items_list) then return end
local items_table = mw.text.split(items_list, "/·/", true)
-- get internal link of property/qualifier
if isSet(args.formatting) then
largs.formatting = nil -- default link if defined with any value
else
largs.formatting = "internallink"
end
local link_list, _ = p.claim(largs)
local link_table = mw.text.split(link_list, "/·/", true)
-- get label of parent property
local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"})
if parent_claim == 'monolingualtext' then
largs.formatting = nil
largs.list = 'lang'
else
largs.formatting = "label"
largs.list = false
end
largs.property = args.parent
largs.qualifier = nil
for i, v in ipairs(items_table) do
largs.item = v
local link_label, _ = p.claim(largs)
if isSet(link_label) then
link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
args.editicon, _ = setIcons(args.editicon, pargs.editicon)
args.id = getEntityId(args, pargs)
args.lang = findLang(args.lang)
return mw.text.listToText(link_table) .. addEditIcon(args)
end
-- Calculate number of years old ----------------------------
function p.yearsOld(frame)
if not required and frame.args and isSet(frame:getParent().args.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame)
end
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return end
local lang = mw.language.new('en')
local function getBestDate(id, prop)
local mainsnak = getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak"})
if mainsnak and mainsnak.snaktype then
if mainsnak.snaktype == "somevalue" then
return {time = nil, precision = 0}
elseif mainsnak.snaktype == "value" then
return getSnak(mainsnak, {"datavalue", "value"})
end
end
return {time = nil, precision = nil}
end
local birth = getBestDate(id, 'P569')
if birth.time == nil or birth.precision < 8 then
return
end
local death = getBestDate(id, 'P570')
if death.precision and death.precision < 8 then -- includes somevalue
return
elseif death.time == nil then
death = {time = lang:formatDate('c'), precision = 11} -- current date
end
local dates = {}
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "-(%d%d)-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "-(%d%d)-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
for i, d in ipairs(dates) do
if d.precision == 10 then -- month
d.min.day = 1
local timestamp = string.format("%04d", tostring(math.abs(d.max.year)))
.. string.format("%02d", tostring(d.max.month))
.. "01"
d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day"))
elseif d.precision < 10 then -- year or decade
d.min.day = 1
d.min.month = 1
d.max.day = 31
d.max.month = 12
if d.precision == 8 then -- decade
d.max.year = d.max.year + 9
end
end
end
local function age(d1, d2)
local years = d2.year - d1.year
if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then
years = years - 1
end
if d2.year > 0 and d1.year < 0 then
years = years - 1 -- no year 0
end
return years
end
local old_min = age(dates[1].max, dates[2].min)
local old_max = age(dates[1].min, dates[2].max)
if old_max > 200 then
require(wiki.module_title .. '/debug').track('200yo')
end
local old, old_expr
if old_min == 0 and old_max == 0 then
old = "< 1"
old_max = 1 -- expression in singular
elseif old_min == old_max then
old = old_min
else
old = old_min .. "/" .. old_max
end
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo
local yo_pl = {}
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"]
end
if not isSet(yo_pl[2]) then
local yo_label, _ = getLabelByLangs('Q24564698', langs)
yo_pl = {yo_label, yo_label}
end
yo = mw.language.new(langs[1]):plural(old_max, yo_pl)
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
else
old_expr = old .. ' ' .. yo
end
elseif args.formatting then
old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting)
else
old_expr = old
end
return old_expr
end
-- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked.
function p.getLabel(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame)
end
local id = getEntityId(args, pargs, 1)
if id == nil then return end
local languages = findLang(args.lang)
local labelicon = false
if mw.wikibase.isValidEntityId(id) then
_, labelicon = setIcons(args.editicon, pargs.editicon)
end
local label_icon = ''
local label, lang
if args.label then
label = args.label
else
-- exceptions or labels fixed
local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1]))
if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then
label = labels.infoboxLabelsFromId[id]
end
if label == nil then
label, lang = getLabelByLangs(id, languages)
if label then
if isSet(args.itemgender) then
if feminineGender(args.itemgender) then
label = feminineForm(id, lang) or label
end
local _, items_g = string.gsub(args.itemgender, "Q%d+", "")
if not isSet(args.case) and items_g > 1 then
args.case = "plural"
end
end
label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize
if args.case then
label = case(args.case, label, lang)
end
end
label_icon = addLabelIcon(id, lang, languages[1], labelicon)
end
end
local linked = args.linked
local ret2 = required and untranslated or ''
if isSet(linked) and linked ~= "no" then
local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id)
return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2
else
return (label or id) .. label_icon, ret2
end
end
function p.sitelinks(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
-- arguments
local param = {}
param.id = getEntityId(args, pargs)
if param.id == nil then return end
param.project = getArg(args.project)
param.site = getArg(args.site)
param.sitelang = getArg(args.sitelang)
param.show = getArg(args.formatting, '[[$w:$l:$t|$s:$t]] $i')
param.sep = getArg(args.separator, ', ')
-- fetch sitelinks
local sitelinks_obj = mw.wikibase.getEntity(param.id).sitelinks
local slinks = {} -- do some clean up (commonswiki > commons) and add some data
local iw = {['wikipedia'] = 'w', ['wikibooks'] = 'b', ['wikinews'] = 'n', ['wikiquote'] = 'q',
['wikisource'] = 's', ['wikiversity'] = 'v', ['wikivoyage'] = 'voy', ['wiktionary'] = 'wikt', ['commons'] = 'c',
['meta'] = 'm', ['mediawiki'] = 'mw', ['species'] = 'species', ['wikidata'] = 'd', ['wikifunctions'] = 'f'}
for slink, sdata in pairs(sitelinks_obj) do
-- langcode + wiki, wikibooks, wikinews, wikiquote, wikisource, wikiversity, wikivoyage, wiktionary
local s_lang = string.match(slink, '(%l+)wik[it]')
local s_project = string.match(slink, 'wik[it]%l*')
if slink == 'commonswiki' or slink == 'metawiki' or slink == 'mediawikiwiki'
or slink == 'specieswiki' or slink == 'wikidatawiki' or slink == 'wikifunctionswiki'
then
s_project = string.sub(slink, 1, -5) -- remove -wiki
slinks[s_project] = {['lang'] = 'und', ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiki' then -- restore project full name
slinks[slink] = {['lang'] = s_lang, ['project'] = 'wikipedia', ['iw'] = 'w', ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiktionary' then -- use short site name
s_project = string.sub(slink, 1, -7)
slinks[s_project] = {['lang'] = s_lang, ['project'] = 'wiktionary', ['iw'] = 'wikt', ['title'] = sdata.title, ['badges'] = sdata.badges}
else
slinks[slink] = {['lang'] = s_lang, ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
end
end
-- select requested project, site, sitelang
local slinks_req = {}
if not (param.project or param.site or param.sitelang) then
slinks_req = slinks
else
for pr in string.gmatch(param.project or '', '%l+') do -- lowercase letters, skip separators
for sl, sd in pairs(slinks) do
if sd.project == pr then
slinks_req[sl] = sd
end
end
end
for s in string.gmatch(param.site or '', '%l+') do
for sl, sd in pairs(slinks) do
if sl == s then
slinks_req[sl] = sd
end
end
end
for l in string.gmatch(param.sitelang or '', '%l+') do
for sl, sd in pairs(slinks) do
if sd.lang == l then
slinks_req[sl] = sd
end
end
end
end
-- sort table
local sites_sorted = {}
for sitex in pairs(slinks_req) do
sites_sorted[#sites_sorted + 1] = sitex
end
local sort_project_lang = function(a, b)
local key_a = slinks_req[a].project .. slinks_req[a].lang
local key_b = slinks_req[b].project .. slinks_req[b].lang
return key_a < key_b
end
table.sort(sites_sorted, sort_project_lang)
-- format output
local showtext = {}
local shownum, showbnum = 0, 0
for _, sl in ipairs(sites_sorted) do
local sd = slinks_req[sl]
local show = param.show -- default '[[$w:$l:$t|$s:$t]] $i' iw:lang:title, site:title icon, also $p project
show = string.gsub(show, '$w', sd.iw)
show = string.gsub(show, '$p', sd.project)
if sd.lang == 'und' then
show = string.gsub(show, '$l:?', '')
else
show = string.gsub(show, '$l', sd.lang)
end
show = string.gsub(show, '$t', sd.title)
show = string.gsub(show, '$s', sl)
if next(sd.badges) then
show = string.gsub(show, '$i', '[[File:Article de qualité.svg|15x15px]]')
showbnum = showbnum + 1
else
show = string.gsub(show, ' ?$i', '')
end
if show ~= param.show then
table.insert(showtext, show)
end
shownum = shownum + 1
end
local output
if string.find(param.show, '$[nb]') then
output = string.gsub(param.show, '$n', shownum) -- number of sites
output = string.gsub(output, '$b', showbnum) -- number of badges
else
output = table.concat(showtext, param.sep)
end
return output
end
-- Utilities -----------------------------
-- See also module ../debug.
-- Copied from Module:Wikibase
function p.getSiteLink(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs, 1)
if id == nil then return end
return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or ''))
end
-- Helper function for the default language code used
function p.lang(frame)
local lang = frame and frame.args[1] -- nil via require
return findLang(lang)[1]
end
-- Number of statements
function p.numStatements(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return 0 end
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) then
local largs = {}
for k, v in pairs(pargs) do
largs[k] = v
end
for k, v in pairs(args) do
largs[k] = v
end
largs.query = 'num'
_, num = p.claim(largs)
return num
elseif args[2] then -- qualifier
local qual = mw.text.trim(args[2])
local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'}
if values then
num = mw.text.split(values, '/·/')
end
else
num = mw.wikibase.getBestStatements(id, prop)
end
return #num
end
-- Returns true if property datavalue is found excluding novalue/somevalue
function p.validProperty(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local item = getEntityId(args, pargs)
if item == nil then return end
local property = mw.text.trim(args[1])
local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"})
return prop_data and true or nil
end
function p.editAtWikidata(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local value = isSet(args[1])
if value then return end
local param = {}
param.id = getEntityId(args, pargs)
param.property = args.property
param.lang = findLang(args.lang)
param.editicon, _ = setIcons(args.editicon)
return addEditIcon(param)
end
function p.formatNum(frame)
local val = frame.args[1]
-- 1. If the input is empty, return nothing immediately to avoid errors
if not val or mw.text.trim(val) == "" then
return ""
end
val = mw.text.trim(val)
-- 2. Strip out Wikidata noise like leading "+" signs or reference tags (e.g., "[1]")
-- This guarantees the template math parser gets a clean number
local clean_val = string.gsub(val, "^%+", "")
clean_val = string.gsub(clean_val, "%[%d+%]", "")
local num = tonumber(clean_val)
-- 3. THE SAFETY NET: If it still fails to become a number, return the raw text
-- instead of letting 'nil' crash the template math.
if not num then
return val
end
-- 4. Safely handle the language argument (defaults to 'ks' if missing)
local lang_arg = frame.args[2]
if not lang_arg or mw.text.trim(lang_arg) == "" then
lang_arg = 'ks'
end
local lang = findLang(mw.text.trim(lang_arg))
local lang_code = (lang and lang[1]) and lang[1] or 'ks'
return mw.language.new(lang_code):formatNum(num)
end
return p
6gt11awg24dh0gl4mvo97guykbklwnb
142923
142922
2026-06-26T08:45:27Z
آیات محراج
11062
142923
Scribunto
text/plain
-- version 20260211 from master @cawiki
-- changes from previous version:
-- new function sitelinks
local p = {}
-- Initialization of variables --------------------
local i18n = { -- internationalisation at subpage /i18n
["errors"] = {
["property-not-found"] = "Property not found.",
["qualifier-not-found"] = "Qualifier not found.",
},
["datetime"] = {
-- $1 is a placeholder for the actual number
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = "$1 BCE", -- how print negative years
["ad"] = "$1", -- how print 1st century AD dates
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100000 years", -- precision: hundred thousand years; thousand separators added afterwards
[5] = "$10000 years", -- precision: ten thousand years; thousand separators added afterwards
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs
},
["years-old"] = {"", ""}, -- year(s) old, as in magic word {PLURAL:$1|singular|plural}
-- two values for most languages, up to six values for some languages, examples:
-- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages
-- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic
-- see documentation of PLURAL in your language at [[mw:Help:Magic words#Localization 2]]
["cite"] = { -- cite parameters
["title"] = "title",
["author"] = "author",
["date"] = "date",
["pages"] = "pages",
["language"] = "language",
-- cite web parameters
["url"] = "url",
["website"] = "website",
["access-date"] = "access-date",
["archive-url"] = "archive-url",
["archive-date"] = "archive-date",
["publisher"] = "publisher",
["quote"] = "quote",
-- cite journal parameters
["work"] = "work",
["issue"] = "issue",
["issn"] = "issn",
["doi"] = "doi"
},
-- default local wiki settings
["addpencil"] = false, -- adds a pencil icon linked to Wikidata statement, planned to overwrite by Wikidata Bridge
["categorylabels"] = "", -- Category:Pages with Wikidata labels not translated (void for no local category)
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}, -- additional fallback language codes
["suppressids"] = {}, -- list of Qid values to suppress
["qidlabels"] = true -- show labels as Qid if no fallback translation is available
}
local cases = {} -- functions for local grammatical cases defined at subpage /i18n
local required = ... -- variadic arguments from require function
local wiki =
{
langcode = mw.language.getContentLanguage().code,
module_title = required or mw.getCurrentFrame():getTitle()
}
local untranslated -- used in infobox modules: nil or true
local _ -- variable for unused returned values, avoiding globals
-- Module local functions --------------------------------------------
-- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0
local function tableMerge(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n(lang)
local exist, res = pcall(require, wiki.module_title .. "/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
cases = res.cases
end
if lang ~= wiki.langcode then
exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang)
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
tableMerge(cases, res.cases)
end
end
i18n.suppress = {}
for _, id in ipairs(i18n.suppressids) do
i18n.suppress[id] = true
end
end
-- Table of language codes: requested or default and its fallbacks
local function findLang(langcode)
if mw.language.isKnownLanguageTag(langcode or '') == false then
local cframe = mw.getCurrentFrame()
local pframe = cframe:getParent()
langcode = pframe and pframe.args.lang
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:callParserFunction('int', {'lang'})
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
langcode = wiki.langcode
end
end
end
loadI18n(langcode)
local languages = mw.language.getFallbacksFor(langcode)
table.insert(languages, 1, langcode)
table.insert(languages, 2, "mul") -- see [[d:Help:Default values for labels and aliases]]
if langcode == wiki.langcode then
for _, l in ipairs(i18n.addfallback) do
table.insert(languages, l)
end
end
return languages
end
-- Argument is 'set' when it exists (not nil) or when it is not an empty string.
local function isSet(var)
return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == ''))
end
-- Set local case to a label
local function case(localcase, label, ...)
if not isSet(label) then return label end
if type(localcase) == "function" then
return localcase(label)
elseif localcase == "smallcaps" then
return '<span style="font-variant: small-caps;">' .. label .. '</span>'
elseif cases[localcase] then
return cases[localcase](label, ...)
end
return label
end
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if not ret then return end
ret = ret[v]
end
return ret
end
-- get label with an array of fallback languages
-- mw.wikibase.getLabelWithLang uses lang mul as last fallback, not the first one
local function getLabelByLangs(id, languages)
local label, lang
for _, l in ipairs(languages) do
label = mw.wikibase.getLabelByLang(id, l)
if label then
lang = (l == "mul" and languages[1] or l)
break
end
end
return label, lang
end
-- getBestStatements if bestrank=true, else getAllStatements with no deprecated
local function getStatements(entityId, property, bestrank)
local claims = {}
if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end
if bestrank then
claims = mw.wikibase.getBestStatements(entityId, property)
else
local allclaims = mw.wikibase.getAllStatements(entityId, property)
for _, c in ipairs(allclaims) do
if c.rank ~= "deprecated" then
table.insert(claims, c)
end
end
end
return claims
end
-- Is gender femenine? true or false
local function feminineGender(id)
for idn in string.gmatch(id, "Q%d+") do
local claims = mw.wikibase.getBestStatements(idn or mw.wikibase.getEntityIdForCurrentPage(),'P21')
local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"})
if gender_id == nil or not (gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445") then
-- not female, transgender female or female organism
return false
end
end
return true
end
-- Fetch female form of label
local function feminineForm(id, lang)
local feminine_claims = getStatements(id, 'P2521')
for _, feminine_claim in ipairs(feminine_claims) do
if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then
return feminine_claim.mainsnak.datavalue.value.text
end
end
end
-- Add an icon for no label in requested language
local function addLabelIcon(label_id, lang, uselang, icon)
local ret_lang, ret_icon = '', ''
if icon then
if lang and lang ~= uselang then
ret_lang = " <sup>(" .. lang .. ")</sup>"
end
if label_id and (lang == nil or lang ~= uselang) then
local namespace = ''
if string.sub(label_id, 1, 1) == 'P' then
namespace = 'Property:'
end
ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|class=skin-invert|"
.. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain()
.. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]"
untranslated = true
end
if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then
ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]')
end
end
return ret_lang .. ret_icon
end
-- editicon values: true/false (no=false), right, void defaults to i18n.addpencil
-- labelicon only by parameter
local function setIcons(arg, parg)
local val = arg == nil and parg or arg
local edit_icon, label_icon
if not isSet(val) then
edit_icon, label_icon = i18n.addpencil, true
elseif val == false or val == "false" or val == "no" then
edit_icon, label_icon = false, false
else
edit_icon, label_icon = val, true
end
return edit_icon, label_icon
end
-- Add an icon for editing a statement with requirements for future Wikidata Bridge
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or ''
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>'
.. "[[File:Arbcom ru editing.svg|10px|baseline|"
.. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata')
.. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]"
.. "</span>"
if isSet(i18n.categoryprop) then
ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]"
end
end
return ret
end
-- add edit icon to the last element of a table
local function addEditIconTable(thetable, parameters)
if #thetable == 0 or parameters.editicon == false then
return thetable
end
local last_element = thetable[#thetable]
local the_icon = addEditIcon(parameters)
-- add it before last html closing tags
local tags = ''
local rev_element = string.reverse(last_element)
for tag in string.gmatch(rev_element, '(>%l+/<)') do
if string.match(rev_element, '^' .. tags .. tag) then
tags = tags .. tag
else
break
end
end
local last_tags = string.reverse(tags)
local offset = string.find(last_element, last_tags .. '$')
if offset then
thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags
else
thetable[#thetable] = last_element .. the_icon
end
return thetable
end
-- Escape Lua captures
local function captureEscapes(text)
return mw.ustring.gsub(text, "(%%%d)", "%%%1")
end
-- expandTemplate or callParserFunction
local function expandBraces(text, formatting)
if text == nil or formatting == nil then return text end
-- only expand braces if provided in argument, not included in value as in Q1164668
if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end
if type(text) ~= "string" then
text = tostring(text)
end
for braces in mw.ustring.gmatch(text, "{{(.-)}}") do
local parts = mw.text.split(braces, "|")
local title_part = parts[1]
local parameters = {}
for i = 2, #parts do
local subparts = mw.ustring.find(parts[i], "=")
if subparts then
local param_name = mw.ustring.sub(parts[i], 1, subparts - 1)
local param_value = mw.ustring.sub(parts[i], subparts + 1, -1)
-- reconstruct broken links by parts
if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then
parameters[param_name] = param_value
local part_next = i + 1
while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do
parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next]
part_next = part_next + 1
end
else
parameters[param_name] = param_value
end
elseif not mw.ustring.find(parts[i], "]]", 1, true) then
table.insert(parameters, parts[i])
end
end
local braces_expanded
if mw.ustring.find(title_part, ":")
and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template:
then
braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters}
elseif title_part == "!" then
-- template:! may be deleted locally, now provided by MediaWiki
-- although it works, it raises a Lua internal error
braces_expanded = "|"
else
braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters}
end
braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters
braces_expanded = captureEscapes(braces_expanded)
text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded)
end
return text
end
-- format data type math
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
end
-- format data type musical-notation
local function printDatatypeMusical(data, formatting)
local attr = {}
if formatting == 'sound' then
attr.sound = 1
end
return mw.getCurrentFrame():extensionTag('score', data, attr)
end
-- format data type string
local function printDatatypeString(data, parameters)
if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting)
elseif parameters.case then
return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id))
end
local data_number = string.match(data, "^%d+")
if data_number then -- sort key by initial number and remaining string
local sortkey = string.format("%019d", data_number * 1000)
return data, sortkey .. string.sub(data, #data_number + 1)
end
return data
end
-- format data type tabular-data
local function printDatatypeTabular(data, parameters)
local icon
if parameters.formatting == 'raw' then
icon = "no-icon"
data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data
end
return printDatatypeString(data, parameters), icon
end
-- format data type url
local function printDatatypeUrl(data, parameters)
if parameters.formatting == 'weblink' then
local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/')
local label = string.gsub(label_parts[3], '^www%.', '')
if #label_parts > 3 then
label = label .. '…'
end
return '[' .. data .. ' ' .. label .. ']'
end
return printDatatypeString(data, parameters)
end
-- format data type external-id
local function printDatatypeExternal(data, parameters)
if parameters.formatting == 'externalid' then
local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL
local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"})
if p_link_pattern then
local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data})
return '[' .. p_link .. ' ' .. data .. ']'
end
end
return printDatatypeString(data, parameters)
end
-- format data type commonsMedia and geo-shape
local function printDatatypeMedia(data, parameters)
local icon
if not string.find((parameters.formatting or ''), '$1', 1, true) then
icon = "no-icon"
if not string.find(data, '^Data:') then
data = mw.uri.encode(data, 'PATH') -- encode special characters in filename
end
end
return printDatatypeString(data, parameters), icon
end
-- format data type globe-coordinate
local function printDatatypeCoordinate(data, formatting)
local function globes(globe_id)
-- parameter globe in coordinates accepted by GeoHack
-- see [[w:en:Special:PrefixIndex/Template:GeoTemplate]]
local globes = {['Q3343'] = 'ariel', ['Q3134'] = 'callisto', ['Q596'] = 'ceres',
['Q6604'] = 'charon', ['Q7548'] = 'deimos', ['Q15040'] = 'dione', ['Q2'] = 'earth',
['Q3303'] = 'enceladus', ['Q3143'] = 'europa', ['Q3169'] = 'ganymede',
['Q15037'] = 'hyperion', ['Q17958'] = 'iapetus', ['Q3123'] = 'io',
['Q319'] = 'jupiter', ['Q111'] = 'mars', ['Q308'] = 'mercury', ['Q15034'] = 'mimas',
['Q3352'] = 'miranda', ['Q405'] = 'moon', ['Q3332'] = 'oberon', ['Q7547'] = 'phobos',
['Q17975'] = 'phoebe', ['Q339'] = 'pluto', ['Q15050'] = 'rhea', ['Q15047'] = 'tethys',
['Q2565'] = 'titan', ['Q3322'] = 'titania', ['Q3359'] = 'triton',
['Q3338'] = 'umbriel', ['Q313']='venus', ['Q3030']='vesta'}
return globes[globe_id]
end
local function roundPrecision(num, prec)
if prec == nil or prec <= 0 then return num end
local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001
return math.floor(num / sig + 0.5) * sig
end
local precision = data.precision
local latitude = roundPrecision(data.latitude, precision)
local longitude = roundPrecision(data.longitude, precision)
if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then
local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude})
if string.find(formatting, '$globe', 1, true) then
local myglobe = 'earth'
if isSet(data.globe) then
local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2
myglobe = globes(globenum) or 'earth'
end
ret = mw.ustring.gsub(ret, '$globe', myglobe)
end
return expandBraces(ret, formatting)
elseif formatting == 'latitude' then
return latitude, "no-icon"
elseif formatting == 'longitude' then
return longitude, "no-icon"
elseif formatting == 'dimension' then
return data.dimension, "no-icon"
else --default formatting='globe'
if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then
return 'earth', "no-icon"
else
local globenum = mw.text.split(data.globe, 'entity/')[2]
return globes(globenum) or globenum, "no-icon"
end
end
end
-- Local functions for data value quantity
local function unitSymbol(id, lang) -- get unit symbol or code
local unit_symbol = ''
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true)
end
if unit_symbol == '' then
-- fetch it
local claims = mw.wikibase.getBestStatements(id, 'P5061')
if #claims > 0 then
local langclaims = {}
for _, snak in ipairs(claims) do
local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"})
if snak_language and not langclaims[snak_language] then -- just the first one by language
langclaims[snak_language] = snak.mainsnak.datavalue.value.text
end
end
for _, l in ipairs(lang) do
if langclaims[l] then
return langclaims[l]
end
end
end
end
return unit_symbol
end
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]"
else
suffix = unit_symbol
end
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit label
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]"
end
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
end
end
if suffix ~= '' then
suffix = ' ' .. suffix
end
return suffix
end
local function roundDefPrecision(in_num, factor)
-- rounds out_num with significant figures of in_num (default precision)
local out_num = in_num * factor
if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN
return out_num
end
-- first, count digits after decimal mark, handling cases like '12.345e6'
local exponent, prec
local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
-- significant figures
local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001
local out_bracket = in_bracket * out_num / in_num
out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001
-- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound)
return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket
end
-- format data type quantity
local function printDatatypeQuantity(data, parameters)
local amount = data.amount
amount = mw.ustring.gsub(amount, "%+", "")
local suffix = ""
local conv_amount, conv_suffix
if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then
local unit_id = data.unit
unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1)
if string.sub(unit_id, 1, 1) == "Q" then
suffix = getUnit(amount, unit_id, parameters)
local convert_to
if parameters.convert == "default" or parameters.convert == "default2" then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if exist and units.convert_default and next(units.convert_default) ~= nil then
convert_to = units.convert_default[unit_id]
end
elseif string.sub(parameters.convert or '', 1, 1) == "Q" then
convert_to = parameters.convert
elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then
convert_to = 'Q11574' -- seconds
end
if convert_to and convert_to ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
}
if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount))
conv_amount = math.floor(tonumber(amount_f) + 0.5)
else
local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit
table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit
for _, conv in ipairs(conversions) do
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then
conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount))
break
end
end
end
end
if conv_amount then
conv_suffix = getUnit(conv_amount, convert_to, parameters)
end
elseif parameters.convert == 'M' then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if wiki.langcode == parameters.lang[1]
and exist and units.convert2M and type(units.convert2M) == "function"
then
conv_amount, conv_suffix = units.convert2M(amount)
conv_suffix = (conv_suffix or "").. suffix
elseif tonumber(amount) > 10^8 then
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. mw.text.trim(suffix)
end
end
if conv_amount and parameters.formatting == 'raw' then
amount = conv_amount
suffix = ""
conv_amount = nil
end
end
end
local lang_obj = mw.language.new(parameters.lang[1])
local sortkey = string.format("%019d", tonumber(amount) * 1000)
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == 'duration' then
return lang_obj:formatDuration(sec)
elseif parameters.formatting == 'durationm:s' then
local mm = math.floor(sec / 60)
local ss = sec - (mm * 60)
return string.format("%02d:%02d", mm, ss)
else -- durationhms or durationh:m:s
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals
local duration = ''
for i, v in ipairs(intervals) do
if parameters.formatting == 'durationh:m:s' then
if i == 1 and sec2table[v] then
duration = duration .. sec2table[v] .. ":"
elseif i == 2 then
duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":"
elseif i == 3 then
local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0))
duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str
end
elseif sec2table[v] then
duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "")
end
end
return duration
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id))
elseif parameters.formatting ~= 'raw' then
if parameters.numformat then
amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount)))
else
amount = lang_obj:formatNum(tonumber(amount))
end
end
if conv_amount then
local conv_sortkey = string.format("%019d", conv_amount * 1000)
conv_amount = lang_obj:formatNum(conv_amount)
if parameters.convert == 'default2' then
return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey
else
return conv_amount .. conv_suffix, conv_sortkey
end
elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern
amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount})
end
return amount .. suffix, sortkey
end
-- format data type time
local function printDatatypeTime(data, parameters)
-- Dates and times are stored in ISO 8601 format
local timestamp = data.time
if parameters.formatting == "raw" then
return timestamp, timestamp
end
local post_format
local calendar_add = ""
local precision = data.precision or 11
if string.sub(timestamp, 1, 1) == '-' then
post_format = i18n.datetime["bc"]
elseif string.sub(timestamp, 2, 3) == '00' then
post_format = i18n.datetime["ad"]
elseif precision > 8 then
-- calendar model
local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"}
local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2]
if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian")
or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian")
then
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end
local function formatTime(form, stamp)
local pattern
if type(form) == "function" then
pattern = form(stamp)
else
pattern = form
end
stamp = tostring(stamp)
if mw.ustring.find(pattern, "$1") then
return mw.ustring.gsub(pattern, "$1", stamp)
elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0
stamp = '+' .. string.sub(stamp, 2)
elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number
stamp = string.format("%04d", stamp)
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
end
local function postFormat(t)
if post_format and mw.ustring.find(post_format, "$1") then
return mw.ustring.gsub(post_format, "$1", t)
end
return t
end
local intyear = tonumber(string.match(timestamp, "[+-](%d+)"))
local ret = ""
if precision <= 5 then -- precision is 10000 years or more
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = formatTime(i18n.datetime[precision], y2)
if post_format == i18n.datetime["bc"] then
ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
local ret_number = string.match(ret, "%d+")
if ret_number ~= nil then
ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number)))
end
elseif precision == 6 or precision == 7 then -- millennia or centuries
local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1
ret = formatTime(i18n.datetime[precision], card)
ret = postFormat(ret)
elseif precision == 8 then -- decades
local card = math.floor(math.abs(intyear) / 10) * 10
ret = formatTime(i18n.datetime[8], card)
ret = postFormat(ret)
elseif intyear > 9999 then -- not a valid timestamp
return
elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year
ret = formatTime(i18n.datetime[9], intyear)
ret = postFormat(ret) .. calendar_add
elseif precision == 10 then -- month
ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month
ret = postFormat(ret) .. calendar_add
else -- precision 11, day
ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp)
ret = postFormat(ret) .. calendar_add
end
return ret, timestamp
end
-- format data value wikibase-entityid with data types wikibase-item or wikibase-property
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local entity_page = 'Special:EntityPage/' .. entity_id
local label, lang = getLabelByLangs(entity_id, parameters.lang)
local sitelink = mw.wikibase.getSitelink(entity_id)
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.gender == 'feminineform' then
labelcase = feminineForm(entity_id, lang) or labelcase
end
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
if labelcase == nil and i18n.qidlabels == false then
return
end
local ret1, ret2
if parameter == 'label' then
ret1 = labelcase or entity_id
ret2 = labelcase or entity_id
elseif parameter == 'sitelink' then
ret1 = (sitelink or 'd:' .. entity_page)
ret2 = sitelink or entity_id
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id)
ret1 = expandBraces(ret1, parameter)
ret2 = labelcase or entity_id
else
if parameter == "ucfirst" or parameter == "ucinternallink" then
if labelcase and lang then
labelcase = mw.language.new(lang):ucfirst(labelcase)
end
-- only first of a list, reset formatting for next ones
if parameter == "ucinterlanllink" then
parameters.formatting = 'internallink'
else
parameters.formatting = nil -- default format
end
end
if sitelink then
ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]'
ret2 = labelcase
elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then
ret1 = '[[' .. label .. '|' .. labelcase .. ']]'
ret2 = labelcase
else
ret1 = '[[d:' .. entity_page .. '|' .. (labelcase or entity_id) .. ']]'
ret2 = labelcase or entity_id
end
end
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
-- format data type wikibase-lexeme
local function printDatatypeLexeme(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local lemmas = mw.wikibase.getEntity(entity_id):getLemmas()
if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then
return
end
local ret = '[[d:Special:EntityPage/' .. entity_id .. '|' .. lemmas[1][1] .. ']]'
if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then
ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>"
end
return ret, entity_id
end
-- format data type monolingualtext
local function printDatatypeMonolingual(data, parameters)
-- data fields: language [string], text [string]
local valid_lang = {[parameters.lang[1]] = true, ["mul"] = true}
if parameters.list == "lang" and not valid_lang[data["language"]] then
return
elseif parameters.list == "notlang" and valid_lang[data["language"]] then
return
elseif parameters.formatting == "language" or parameters.formatting == "text" then
return data[parameters.formatting]
end
local result = data["text"]
valid_lang = {[wiki.langcode] = true, ["mul"] = true}
if not valid_lang[data["language"]] then
result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]})
end
if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then
-- output format defined with $text, $language
result = mw.ustring.gsub(parameters.formatting, '$text', result)
result = mw.ustring.gsub(result, '$language', data["language"])
end
return result
end
local function getSnakValue(snak, parameters)
parameters.editbridge = false
if snak.snaktype == 'value' then -- see Special:ListDatatypes
-- data value string
if snak.datatype == "string" then
parameters.editbridge = true -- Wikidata Bridge currently only for string values
return printDatatypeString(snak.datavalue.value, parameters)
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "tabular-data" then
return printDatatypeTabular(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
elseif snak.datatype == "external-id" then
return printDatatypeExternal(snak.datavalue.value, parameters)
elseif snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- data types other than string value
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
if i18n.suppress[snak.datavalue.value.id] then
return
end
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'wikibase-lexeme' then
return printDatatypeLexeme(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
elseif snak.datatype == "globe-coordinate" then
return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting)
elseif snak.datatype == "quantity" then
return printDatatypeQuantity(snak.datavalue.value, parameters)
elseif snak.datatype == "time" then
return printDatatypeTime(snak.datavalue.value, parameters)
end
elseif snak.snaktype == 'novalue' then
if parameters.formatting == 'raw' or parameters.shownovalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw' or parameters.showsomevalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
return mw.wikibase.renderSnak(snak)
end
local function printError(key)
return '<span class="error">' .. i18n.errors[key] .. '</span>'
end
local function getQualifierSnak(claim, qualifierId, parameters)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then
if qualifier[1].datatype == "monolingualtext" then
-- iterate over monolingualtext qualifiers to get languages
local qual_lang, qual_mul
for idx in pairs(qualifier) do
qual_lang = getSnak(qualifier[idx], {"datavalue", "value", "language"})
if qual_lang == parameters.lang[1] then
return qualifier[idx] -- return local language if found
elseif qual_lang == "mul" then
qual_mul = qualifier[idx]
end
end
return qual_mul -- else return multilingual
elseif parameters.list then
return qualifier
else
return qualifier[1]
end
end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameters)
local snak, error = getQualifierSnak(claim, qualifierId, parameters)
if not snak then
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.listmax)
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
if maxvals and maxvals == #result then break end
end
return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1]
else -- a property or a qualifier
return getSnakValue(snak, parameters)
end
end
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local value, sortkey, valueraw = {}, {}, {}
local parent_raw, value_text
if qids[1] == parameters.property then
parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
for idx, p_qid in ipairs(parent_qids) do
local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2])
if parent_claims[1] then
value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters)
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
if value[1] then
value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction)
end
return value_text, sortkey[1], valueraw[1]
end
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not (parameters.references or parameters.onlysourced) then
return '', false
end
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
local notproperref = {
["P143"] = true, -- imported from
["P3452"] = true, -- inferred from
["P887"] = true, -- based on heuristic
["P4656"] = true -- Wikimedia import URL
}
local result = {}
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
local refs = {}
local validref = true
local ref_id
-- traverse through all parts of the current reference
for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do
for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do
if notproperref[snakkey] then -- not a proper reference
validref = false
break
end
end
if validref then
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
if snakval[snakidx].datatype == 'external-id' then
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '')
else
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '')
end
end
refs[snakkey] = refparts
refparts = nil
if snakkey == "P248" then -- stated in
ref_id = getSnak(snakval, {1, "datavalue", "value", "id"})
end
end
end
-- fill missing values with parent item
if ref_id then
local function refParent(qid, pid, formatting)
local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"})
return snak and getSnakValue(snak, {formatting=formatting, lang=lang})
end
refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author
refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work
refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher
refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date
refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in
refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s)
refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue
refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN
refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI
end
-- get title of local templates for citing references
local template_web = mw.wikibase.getSitelink('Q5637226') or ""
template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front
local template_journal = mw.wikibase.getSitelink('Q5624899') or ""
template_journal = mw.text.split(template_journal, ":")[2]
local citeParams = {}
if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then
-- if both "reference URL" and "title" (or "stated in") are present, then use cite web template
citeParams[i18n['cite']['url']] = refs['P854']
if refs['P248'] and refs['P1476'] == nil then
citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]")
else
citeParams[i18n['cite']['title']] = refs['P1476']
citeParams[i18n['cite']['website']] = refs['P248']
end
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['publisher']] = refs['P123']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['access-date']] = refs['P813']
citeParams[i18n['cite']['archive-url']] = refs['P1065']
citeParams[i18n['cite']['archive-date']] = refs['P2960']
citeParams[i18n['cite']['quote']] = refs['P1683']
refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams}
elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then
-- if both "published in" and "title" (or "stated in") are present, then use cite journal template
citeParams[i18n['cite']['work']] = refs['P1433']
citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248']
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['issue']] = refs['P433']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['issn']] = refs['P236']
citeParams[i18n['cite']['doi']] = refs['P356']
refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams}
elseif validref then
-- raw ouput
local snaksorder = claim.references[ref]["snaks-order"]
local function indexed(a)
for _, b in ipairs(snaksorder) do
if b == a then return true end
end
return false
end
for k, _ in pairs(refs or {}) do
if not indexed(k) then
table.insert(snaksorder, k)
end
end
local italics = "''"
local ref_label
for _, k in ipairs(snaksorder) do
if refs[k] then
refparts = refparts and refparts .. " " or ""
ref_label = case('infoboxlabel', getLabelByLangs(k, lang) or '')
refparts = refparts .. mw.ustring.gsub(ref_label, "^%l", mw.ustring.upper) .. ": "
refparts = refparts .. italics .. refs[k] .. italics .. "."
italics = ""
end
end
end
if refparts then
local ref_name = claim.references[ref].hash
result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name})
if maxrefs and maxrefs == #result then break end
end
end
if #result > 0 then
if parameters.references then
if isSet(i18n.categoryref) then
result[#result + 1] = "[[" ..i18n.categoryref .. "]]"
end
return table.concat(result), true
else
return '', true
end
end
return '', false
end
-- Set lists of filtered values
local function setFilterLists(num_qual, args)
local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}}
for i = 0, num_qual do
for k, _ in pairs(lists) do
if isSet(args[k .. i]) then
lists[k][tostring(i)] = {}
local pattern = 'Q%d+'
if string.sub(args[k .. i], 1, 1) ~= 'Q' then
pattern = '[^%p%s]+'
end
for q in string.gmatch(args[k .. i], pattern) do
lists[k][tostring(i)][q] = true
end
end
end
end
return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue']
end
local function tableParameters(args, parameters, column)
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
column_params.case = args["case" .. column]
end
return column_params
end
local function getEntityId(args, pargs, unnamed)
pargs = pargs or {}
local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil)
if not isSet(id) then
id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil)
end
if isSet(id) then
if string.find(id, ":") then -- remove prefix as Property:Pid
id = mw.text.split(id, ":")[2]
end
else
id = mw.wikibase.getEntityIdForCurrentPage()
end
return id
end
local function getArg(value, default, aliases)
if type(value) == 'boolean' then return value
elseif value == "false" or value == "no" then return false
elseif value == "true" or value == "yes" then return true
elseif value and aliases and aliases[value] then return aliases[value]
elseif isSet(value) then return value
elseif default then return default
else return nil
end
end
-- Main function claim ---------------------------------------------
-- on debug console use: =p.claim{item="Q...", property="P...", ...}
function p.claim(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local is_sandbox = isSet(pargs.sandbox)
if not required and is_sandbox then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame)
end
--If a value is already set, use it
if isSet(args.value) then
if args.value == 'NONE' then
return
else
return args.value
end
end
-- arguments
local parameters = {}
parameters.id = getEntityId(args, pargs)
if parameters.id == nil then return end
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))
local i = 2
while isSet(args["qualifier" .. i]) do
qualifierId[i] = string.upper(args["qualifier" .. i])
i = i + 1
end
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.numformat = getArg(args.numformat)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.listmax = args.listmax
parameters.listrank = getArg(args.listrank)
if type(parameters.list) == "number" then -- backwards compatibility
parameters.listmax = parameters.listmax or parameters.list
parameters.list = true
elseif parameters.list == "bestrank" then
parameters.listrank = parameters.listrank or "bestrank"
parameters.list = true
end
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.showsomevalue = getArg(args.showsomevalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator = getArg(args.qseparator, parameters.separator)
parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction)
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references = getArg(args.references, false)
parameters.onlysourced = getArg(args.onlysourced, false)
local showerrors = args.showerrors
local default = args.default
if default then showerrors = nil end
parameters.lang = findLang(args.lang)
if parameters.formatting == "raw" then
parameters.editicon, parameters.labelicon = false, false
else
parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand
end
-- fetch property
local claims = {}
local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang'
for p in string.gmatch(parameters.property, 'P[%d/P]+') do -- P123 or P45/P67
if string.find(p, ".+/.+") then
local props = mw.text.split(p, "/")
local claims_child = {}
claims_child = getStatements(parameters.id, props[1], bestrank)
if #claims_child > 0 then
local parent_id, _, _ = getValueOfClaim(claims_child[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
if string.sub(parent_id or '', 1, 1) == "Q" then
claims = getStatements(parent_id, props[2], bestrank)
if #claims > 0 then
parameters.property = props[1]
break
end
end
end
else
claims = getStatements(parameters.id, p, bestrank)
if #claims > 0 then
parameters.property = p
break
end
end
end
if #claims == 0 then
local ret = showerrors and printError("property-not-found") or default
return ret, args.query == 'num' and 0 or ''
end
-- defaults for table
local preformat, postformat = "", ""
local whitelisted = false
local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {}
if parameters.formatting == "table" then
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain())
parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator)
if not rowformat then
rowformat = "$0 ($1"
i = 2
while qualifierId[i] do
rowformat = rowformat .. ", $" .. i
i = i + 1
end
rowformat = rowformat .. ")"
elseif mw.ustring.find(rowformat, "^[*#]") then
parameters.separator = "</li><li>"
parameters.conjunction = "</li><li>"
if mw.ustring.match(rowformat, "^[*#]") == "*" then
preformat = "<ul><li>"
postformat = "</li></ul>"
else
preformat = "<ol><li>"
postformat = "</li></ol>"
end
rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "")
end
-- set lists of filtered values
whitelist, blacklist, ignorevalue, selectvalue = setFilterLists(#qualifierId, args)
local next = next
if next(whitelist) ~= nil then whitelisted = true end
end
-- set feminine case if gender is requested
local itemgender = args.itemgender
local idgender
if itemgender then
if string.match(itemgender, "^P%d+$") then
local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"})
if snak_id then
idgender = snak_id
end
elseif string.match(itemgender, "^Q%d+$") then
idgender = itemgender
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
gender_requested = true
elseif parameters.formatting == "table" then
for i=0, #qualifierId do
if args["case" .. i] and args["case" .. i] == "gender" then
gender_requested = true
break
end
end
end
if gender_requested then
if feminineGender(idgender or parameters.id) then
parameters.gender = "feminineform"
end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result, result2, result_query
local error
if parameters.list or parameters.formatting == "table" then
-- convert LF to line feed, <br /> may not work on some cases
parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator
parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction
-- i18n separators
parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()
parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain())
-- iterate over all elements and return their value (if existing)
local value, valueq
local sortkey, sortkeyq
local values = {}
local sortkeys = {}
local refs = {}
local rowlist = {} -- rows to list with whitelist or blacklist
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
local reference = {}
if not whitelisted then rowlist[idx] = true end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0")
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
if whitelist["0"] or blacklist["0"] then
local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang})
if whitelist["0"] and whitelist["0"][valueraw or ""] then
rowlist[#values] = true
elseif blacklist["0"] and blacklist["0"][valueraw or ""] then
rowlist[#values] = false
end
end
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j)
local valueq, sortkeyq, valueraw
if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw
valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params)
else
for q in mw.text.gsplit(qual, '%s*OR%s*') do
if string.find(q, ".+/.+") then
valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params)
elseif string.find(q, "^/.+") then
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
-- only first value of a property as alternative to a qualifier
-- multiple values may not be related to a given raw of the table
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
else
valueq, sortkeyq, _ = getValueOfClaim(claim, q, params)
end
if valueq then
qual = q
break
end
end
end
values[#values]["col" .. j] = valueq
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang, ["list"]=params.list})
if valueq then
if whitelist[j] then
for k, v in pairs(whitelist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = true
end
end
elseif blacklist[j] then
for k, v in pairs(blacklist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = false
end
end
elseif ignorevalue[j] then
for k, v in pairs(ignorevalue[j]) do
if v and string.find(valueq, k, 1, true) then
values[#values]["col" .. j] = nil
end
end
elseif selectvalue[j] then
local selected
for k, v in pairs(selectvalue[j]) do
if v and string.find(valueq, k, 1, true) then
selected = true
end
end
if selected == nil then
values[#values]["col" .. j] = nil
end
end
end
end
end
end
else
value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters)
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
end
if not value and showerrors then value = error end
if value then
if (parameters.references or parameters.onlysourced) and claim.references then
reference = claim.references
end
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
sortkeys[#sortkeys]["col0"] = sortkey or value
end
end
-- sort and format results
sortindices = {}
for idx in pairs(values) do
sortindices[#sortindices + 1] = idx
end
if sorting_col then
local sorting_table = mw.text.split(sorting_col, '%D+')
local comparator = function(a, b)
local valuea, valueb
local i = 1
while valuea == valueb and i <= #sorting_table do
valuea = sortkeys[a]["col" .. sorting_table[i]] or ''
valueb = sortkeys[b]["col" .. sorting_table[i]] or ''
i = i + 1
end
if sorting_up then
return valueb > valuea
end
return valueb < valuea
end
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.listmax)
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters)
value = valuerow["col0"]
if parameters.formatting == "table" then
if not rowlist[sortindices[idx]] then
value = nil
else
local rowformatting = rowformat .. "$" -- fake end character added for easy gsub
value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value})
value = mw.ustring.gsub(value, "$R0", reference) -- add reference
for i, _ in ipairs(qualifierId) do
local valueq = valuerow["col" .. i]
if args["rowsubformat" .. i] and isSet(valueq) then
-- add fake end character $
-- gsub $i not followed by a number so $1 doesn't match $10, $11...
-- remove fake end character
valueq = captureEscapes(valueq)
valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1")
valueq = string.sub(valueq, 1, -2)
rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1")
end
valueq = valueq and captureEscapes(valueq) or ''
value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1")
end
value = string.sub(value, 1, -2) -- remove fake end character
value = expandBraces(value, rowformatting)
end
elseif value then
value = expandBraces(value, parameters.formatting)
value = value .. reference
end
if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
break
end
end
end
if args.query == 'num' then
result_query = #result
end
if #result > 0 then
if parameters.formatting == 'table' then
result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element
end
result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat
else
result = ''
end
else
-- return first element
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result then
local ref, valid_ref = getReferences(claim, parameters)
if parameters.onlysourced and valid_ref == false then
result = nil
else
result = result .. ref
end
end
if args.query == 'num' then result_query = result and 1 or 0 end
end
if isSet(result) then
if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then
-- add edit icon, except table added previously and except explicit no-icon internal flag
result = result .. addEditIcon(parameters)
end
else
if showerrors then result = error else result = default end
end
if args.query == 'untranslated' and required and not is_sandbox then
result_query = untranslated
end
return result, result_query or ''
end
-- Local functions for getParentValues -----------------------
local function uc_first(word)
if word == nil then return end
return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2)
end
local function getPropertyValue(id, property, parameter, langs, labelicon, case)
local snaks = mw.wikibase.getBestStatements(id, property)
local mysnak = getSnak(snaks, {1, "mainsnak"})
if mysnak == nil then
return
end
local entity_id
local result = '-' -- default for 'no value'
if mysnak.datavalue then
entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id'])
result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case})
end
return entity_id, result
end
local function getParentObjects(id,
prop_format,
label_format,
languages,
propertySupString,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
grammatical_case,
include_self)
local propertySups = mw.text.split(propertySupString, '[^P%d]')
local maxloop = 10
if upto_number then
maxloop = upto_number
elseif next(upto_label) or next(upto_value) then
maxloop = 50
end
local labels_filter = next(label_show)
local result = {}
local id_value = id
for iter = 1, maxloop do
local link, label, labelwicon, linktext, id_label
for _, propertySup in pairs(propertySups) do
local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case)
if _id_value and _link then id_value = _id_value; link = _link break end
end
if not id_value or not link then break end
if propertyLink then
_, linktext = getPropertyValue(id_value, propertyLink, "label", languages)
if linktext then
link = link .. " (" .. linktext .. ")"
end
end
id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel")
if labelicon0 then
_, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
else
labelwicon = label
end
if labels_filter == nil or (label_show[id_label] or label_show[label]) then
result[#result + 1] = {labelwicon, link}
label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found
end
if upto_label[id_label] or upto_label[label] or upto_value[id_value] then
break
end
end
if last_only then
result = {result[#result]}
end
if include_self then
local label_self, link_self
_, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
link_self, _ = getLabelByLangs(id, languages)
table.insert(result, 1, {label_self, link_self})
end
return result
end
local function parentObjectsToString(result,
rowformat,
cascade,
sorting)
local ret = {}
local first = 1
local last = #result
local iter = 1
if sorting == "-1" then first = #result; last = 1; iter = -1 end
for i = first, last, iter do
local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]})
ret[#ret + 1] = expandBraces(rowtext, rowformat)
end
if cascade then
local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left"
local suffix = ""
for i = 1, #ret do
ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i]
suffix = suffix .. '</li></ul>'
end
ret[#ret] = ret[#ret] .. suffix
end
return ret
end
-- Returns pairs of parent label and property value fetching a recursive tree
function p.getParentValues(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame)
end
local id = getEntityId(args, pargs)
if id == nil then return end
local languages = findLang(args.lang)
local propertySup = getArg(args.property, "P131") --administrative entity
local propertyLabel = getArg(args.label, "P31") --instance
local propertyLink = getArg(args.valuetext)
local property_format = getArg(args.formatting)
local label_format = getArg(args.labelformat, "label")
local upto_number = getArg(args.upto)
local last_only = getArg(args.last_only, false)
local editicon, labelicon = setIcons(args.editicon, pargs.editicon)
local include_self = getArg(args.include_self, false)
local case = getArg(args.case)
local upto_label = {}
for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do
upto_label[q] = true
end
if type(tonumber(upto_number)) == "number" then
upto_number = tonumber(upto_number)
elseif type(upto_number) == 'string' then
upto_number = nil
require(wiki.module_title .. '/debug').track('upto') -- replace upto by uptolabelid
end
local upto_value = {}
for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do
upto_value[q] = true
end
local label_show = {}
for q in string.gmatch(args.showlabelid or '', 'Q%d+') do
label_show[q] = true
end
for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do
if v ~= '' then
label_show[uc_first(v)] = true
require(wiki.module_title .. '/debug').track('labelshow') -- replace labelshow by showlabelid
end
end
local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end
local labelicon0, labelicon1 = labelicon, labelicon
if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then
labelicon0 = false
end
local result = getParentObjects(id,
property_format,
label_format,
languages,
propertySup,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
case,
include_self)
if #result == 0 then return end
local separator = args.separator; if not isSet(separator) then separator = "<br />" end
local sorting = args.sorting; if sorting == "" then sorting = nil end
local cascade = (args.cascade == "true" or args.cascade == "yes")
local ret = parentObjectsToString(result,
rowformat,
cascade,
sorting)
ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages})
return mw.text.listToText(ret, separator, separator)
end
-- Link with a parent label --------------------
function p.linkWithParentLabel(frame)
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame)
end
local args = {}
if frame.args then
for k, v in pairs(frame.args) do -- metatable
args[k] = v
end
else
args = frame -- via require
end
if isSet(args.value) then
return args.value
end
-- get id value of property/qualifier
local largs = mw.clone(args)
largs.list = tonumber(args.list) and args.list or true
largs.formatting = "raw"
largs.separator = "/·/"
largs.editicon = false
local items_list, _ = p.claim(largs)
if not isSet(items_list) then return end
local items_table = mw.text.split(items_list, "/·/", true)
-- get internal link of property/qualifier
if isSet(args.formatting) then
largs.formatting = nil -- default link if defined with any value
else
largs.formatting = "internallink"
end
local link_list, _ = p.claim(largs)
local link_table = mw.text.split(link_list, "/·/", true)
-- get label of parent property
local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"})
if parent_claim == 'monolingualtext' then
largs.formatting = nil
largs.list = 'lang'
else
largs.formatting = "label"
largs.list = false
end
largs.property = args.parent
largs.qualifier = nil
for i, v in ipairs(items_table) do
largs.item = v
local link_label, _ = p.claim(largs)
if isSet(link_label) then
link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
args.editicon, _ = setIcons(args.editicon, pargs.editicon)
args.id = getEntityId(args, pargs)
args.lang = findLang(args.lang)
return mw.text.listToText(link_table) .. addEditIcon(args)
end
-- Calculate number of years old ----------------------------
function p.yearsOld(frame)
if not required and frame.args and isSet(frame:getParent().args.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame)
end
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return end
local lang = mw.language.new('en')
local function getBestDate(id, prop)
local mainsnak = getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak"})
if mainsnak and mainsnak.snaktype then
if mainsnak.snaktype == "somevalue" then
return {time = nil, precision = 0}
elseif mainsnak.snaktype == "value" then
return getSnak(mainsnak, {"datavalue", "value"})
end
end
return {time = nil, precision = nil}
end
local birth = getBestDate(id, 'P569')
if birth.time == nil or birth.precision < 8 then
return
end
local death = getBestDate(id, 'P570')
if death.precision and death.precision < 8 then -- includes somevalue
return
elseif death.time == nil then
death = {time = lang:formatDate('c'), precision = 11} -- current date
end
local dates = {}
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "-(%d%d)-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "-(%d%d)-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
for i, d in ipairs(dates) do
if d.precision == 10 then -- month
d.min.day = 1
local timestamp = string.format("%04d", tostring(math.abs(d.max.year)))
.. string.format("%02d", tostring(d.max.month))
.. "01"
d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day"))
elseif d.precision < 10 then -- year or decade
d.min.day = 1
d.min.month = 1
d.max.day = 31
d.max.month = 12
if d.precision == 8 then -- decade
d.max.year = d.max.year + 9
end
end
end
local function age(d1, d2)
local years = d2.year - d1.year
if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then
years = years - 1
end
if d2.year > 0 and d1.year < 0 then
years = years - 1 -- no year 0
end
return years
end
local old_min = age(dates[1].max, dates[2].min)
local old_max = age(dates[1].min, dates[2].max)
if old_max > 200 then
require(wiki.module_title .. '/debug').track('200yo')
end
local old, old_expr
if old_min == 0 and old_max == 0 then
old = "< 1"
old_max = 1 -- expression in singular
elseif old_min == old_max then
old = old_min
else
old = old_min .. "/" .. old_max
end
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo
local yo_pl = {}
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"]
end
if not isSet(yo_pl[2]) then
local yo_label, _ = getLabelByLangs('Q24564698', langs)
yo_pl = {yo_label, yo_label}
end
yo = mw.language.new(langs[1]):plural(old_max, yo_pl)
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
else
old_expr = old .. ' ' .. yo
end
elseif args.formatting then
old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting)
else
old_expr = old
end
return old_expr
end
-- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked.
function p.getLabel(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame)
end
local id = getEntityId(args, pargs, 1)
if id == nil then return end
local languages = findLang(args.lang)
local labelicon = false
if mw.wikibase.isValidEntityId(id) then
_, labelicon = setIcons(args.editicon, pargs.editicon)
end
local label_icon = ''
local label, lang
if args.label then
label = args.label
else
-- exceptions or labels fixed
local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1]))
if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then
label = labels.infoboxLabelsFromId[id]
end
if label == nil then
label, lang = getLabelByLangs(id, languages)
if label then
if isSet(args.itemgender) then
if feminineGender(args.itemgender) then
label = feminineForm(id, lang) or label
end
local _, items_g = string.gsub(args.itemgender, "Q%d+", "")
if not isSet(args.case) and items_g > 1 then
args.case = "plural"
end
end
label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize
if args.case then
label = case(args.case, label, lang)
end
end
label_icon = addLabelIcon(id, lang, languages[1], labelicon)
end
end
local linked = args.linked
local ret2 = required and untranslated or ''
if isSet(linked) and linked ~= "no" then
local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id)
return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2
else
return (label or id) .. label_icon, ret2
end
end
function p.sitelinks(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
-- arguments
local param = {}
param.id = getEntityId(args, pargs)
if param.id == nil then return end
param.project = getArg(args.project)
param.site = getArg(args.site)
param.sitelang = getArg(args.sitelang)
param.show = getArg(args.formatting, '[[$w:$l:$t|$s:$t]] $i')
param.sep = getArg(args.separator, ', ')
-- fetch sitelinks
local sitelinks_obj = mw.wikibase.getEntity(param.id).sitelinks
local slinks = {} -- do some clean up (commonswiki > commons) and add some data
local iw = {['wikipedia'] = 'w', ['wikibooks'] = 'b', ['wikinews'] = 'n', ['wikiquote'] = 'q',
['wikisource'] = 's', ['wikiversity'] = 'v', ['wikivoyage'] = 'voy', ['wiktionary'] = 'wikt', ['commons'] = 'c',
['meta'] = 'm', ['mediawiki'] = 'mw', ['species'] = 'species', ['wikidata'] = 'd', ['wikifunctions'] = 'f'}
for slink, sdata in pairs(sitelinks_obj) do
-- langcode + wiki, wikibooks, wikinews, wikiquote, wikisource, wikiversity, wikivoyage, wiktionary
local s_lang = string.match(slink, '(%l+)wik[it]')
local s_project = string.match(slink, 'wik[it]%l*')
if slink == 'commonswiki' or slink == 'metawiki' or slink == 'mediawikiwiki'
or slink == 'specieswiki' or slink == 'wikidatawiki' or slink == 'wikifunctionswiki'
then
s_project = string.sub(slink, 1, -5) -- remove -wiki
slinks[s_project] = {['lang'] = 'und', ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiki' then -- restore project full name
slinks[slink] = {['lang'] = s_lang, ['project'] = 'wikipedia', ['iw'] = 'w', ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiktionary' then -- use short site name
s_project = string.sub(slink, 1, -7)
slinks[s_project] = {['lang'] = s_lang, ['project'] = 'wiktionary', ['iw'] = 'wikt', ['title'] = sdata.title, ['badges'] = sdata.badges}
else
slinks[slink] = {['lang'] = s_lang, ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
end
end
-- select requested project, site, sitelang
local slinks_req = {}
if not (param.project or param.site or param.sitelang) then
slinks_req = slinks
else
for pr in string.gmatch(param.project or '', '%l+') do -- lowercase letters, skip separators
for sl, sd in pairs(slinks) do
if sd.project == pr then
slinks_req[sl] = sd
end
end
end
for s in string.gmatch(param.site or '', '%l+') do
for sl, sd in pairs(slinks) do
if sl == s then
slinks_req[sl] = sd
end
end
end
for l in string.gmatch(param.sitelang or '', '%l+') do
for sl, sd in pairs(slinks) do
if sd.lang == l then
slinks_req[sl] = sd
end
end
end
end
-- sort table
local sites_sorted = {}
for sitex in pairs(slinks_req) do
sites_sorted[#sites_sorted + 1] = sitex
end
local sort_project_lang = function(a, b)
local key_a = slinks_req[a].project .. slinks_req[a].lang
local key_b = slinks_req[b].project .. slinks_req[b].lang
return key_a < key_b
end
table.sort(sites_sorted, sort_project_lang)
-- format output
local showtext = {}
local shownum, showbnum = 0, 0
for _, sl in ipairs(sites_sorted) do
local sd = slinks_req[sl]
local show = param.show -- default '[[$w:$l:$t|$s:$t]] $i' iw:lang:title, site:title icon, also $p project
show = string.gsub(show, '$w', sd.iw)
show = string.gsub(show, '$p', sd.project)
if sd.lang == 'und' then
show = string.gsub(show, '$l:?', '')
else
show = string.gsub(show, '$l', sd.lang)
end
show = string.gsub(show, '$t', sd.title)
show = string.gsub(show, '$s', sl)
if next(sd.badges) then
show = string.gsub(show, '$i', '[[File:Article de qualité.svg|15x15px]]')
showbnum = showbnum + 1
else
show = string.gsub(show, ' ?$i', '')
end
if show ~= param.show then
table.insert(showtext, show)
end
shownum = shownum + 1
end
local output
if string.find(param.show, '$[nb]') then
output = string.gsub(param.show, '$n', shownum) -- number of sites
output = string.gsub(output, '$b', showbnum) -- number of badges
else
output = table.concat(showtext, param.sep)
end
return output
end
-- Utilities -----------------------------
-- See also module ../debug.
-- Copied from Module:Wikibase
function p.getSiteLink(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs, 1)
if id == nil then return end
return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or ''))
end
-- Helper function for the default language code used
function p.lang(frame)
local lang = frame and frame.args[1] -- nil via require
return findLang(lang)[1]
end
-- Number of statements
function p.numStatements(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return 0 end
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) then
local largs = {}
for k, v in pairs(pargs) do
largs[k] = v
end
for k, v in pairs(args) do
largs[k] = v
end
largs.query = 'num'
_, num = p.claim(largs)
return num
elseif args[2] then -- qualifier
local qual = mw.text.trim(args[2])
local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'}
if values then
num = mw.text.split(values, '/·/')
end
else
num = mw.wikibase.getBestStatements(id, prop)
end
return #num
end
-- Returns true if property datavalue is found excluding novalue/somevalue
function p.validProperty(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local item = getEntityId(args, pargs)
if item == nil then return end
local property = mw.text.trim(args[1])
local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"})
return prop_data and true or nil
end
function p.editAtWikidata(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local value = isSet(args[1])
if value then return end
local param = {}
param.id = getEntityId(args, pargs)
param.property = args.property
param.lang = findLang(args.lang)
param.editicon, _ = setIcons(args.editicon)
return addEditIcon(param)
end
function p.formatNum(frame)
local num = tonumber(mw.text.trim(frame.args[1]))
local lang = findLang(mw.text.trim(frame.args[2]))
return mw.language.new(lang[1]):formatNum(num)
end
return p
ah1s6p8v51wcla88xdb3loqaje9qdw7
142924
142923
2026-06-26T08:49:13Z
آیات محراج
11062
142924
Scribunto
text/plain
-- version 20260211 from master @cawiki
-- changes from previous version:
-- new function sitelinks
local p = {}
-- Initialization of variables --------------------
local i18n = { -- internationalisation at subpage /i18n
["errors"] = {
["property-not-found"] = "Property not found.",
["qualifier-not-found"] = "Qualifier not found.",
},
["datetime"] = {
-- $1 is a placeholder for the actual number
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = "$1 BCE", -- how print negative years
["ad"] = "$1", -- how print 1st century AD dates
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100000 years", -- precision: hundred thousand years; thousand separators added afterwards
[5] = "$10000 years", -- precision: ten thousand years; thousand separators added afterwards
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs
},
["years-old"] = {"", ""}, -- year(s) old, as in magic word {PLURAL:$1|singular|plural}
-- two values for most languages, up to six values for some languages, examples:
-- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages
-- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic
-- see documentation of PLURAL in your language at [[mw:Help:Magic words#Localization 2]]
["cite"] = { -- cite parameters
["title"] = "title",
["author"] = "author",
["date"] = "date",
["pages"] = "pages",
["language"] = "language",
-- cite web parameters
["url"] = "url",
["website"] = "website",
["access-date"] = "access-date",
["archive-url"] = "archive-url",
["archive-date"] = "archive-date",
["publisher"] = "publisher",
["quote"] = "quote",
-- cite journal parameters
["work"] = "work",
["issue"] = "issue",
["issn"] = "issn",
["doi"] = "doi"
},
-- default local wiki settings
["addpencil"] = false, -- adds a pencil icon linked to Wikidata statement, planned to overwrite by Wikidata Bridge
["categorylabels"] = "", -- Category:Pages with Wikidata labels not translated (void for no local category)
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}, -- additional fallback language codes
["suppressids"] = {}, -- list of Qid values to suppress
["qidlabels"] = true -- show labels as Qid if no fallback translation is available
}
local cases = {} -- functions for local grammatical cases defined at subpage /i18n
local required = ... -- variadic arguments from require function
local wiki =
{
langcode = mw.language.getContentLanguage().code,
module_title = required or mw.getCurrentFrame():getTitle()
}
local untranslated -- used in infobox modules: nil or true
local _ -- variable for unused returned values, avoiding globals
-- Module local functions --------------------------------------------
-- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0
local function tableMerge(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n(lang)
local exist, res = pcall(require, wiki.module_title .. "/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
cases = res.cases
end
if lang ~= wiki.langcode then
exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang)
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
tableMerge(cases, res.cases)
end
end
i18n.suppress = {}
for _, id in ipairs(i18n.suppressids) do
i18n.suppress[id] = true
end
end
-- Table of language codes: requested or default and its fallbacks
local function findLang(langcode)
if mw.language.isKnownLanguageTag(langcode or '') == false then
local cframe = mw.getCurrentFrame()
local pframe = cframe:getParent()
langcode = pframe and pframe.args.lang
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:callParserFunction('int', {'lang'})
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
langcode = wiki.langcode
end
end
end
loadI18n(langcode)
local languages = mw.language.getFallbacksFor(langcode)
table.insert(languages, 1, langcode)
table.insert(languages, 2, "mul") -- see [[d:Help:Default values for labels and aliases]]
if langcode == wiki.langcode then
for _, l in ipairs(i18n.addfallback) do
table.insert(languages, l)
end
end
return languages
end
-- Argument is 'set' when it exists (not nil) or when it is not an empty string.
local function isSet(var)
return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == ''))
end
-- Set local case to a label
local function case(localcase, label, ...)
if not isSet(label) then return label end
if type(localcase) == "function" then
return localcase(label)
elseif localcase == "smallcaps" then
return '<span style="font-variant: small-caps;">' .. label .. '</span>'
elseif cases[localcase] then
return cases[localcase](label, ...)
end
return label
end
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if not ret then return end
ret = ret[v]
end
return ret
end
-- get label with an array of fallback languages
-- mw.wikibase.getLabelWithLang uses lang mul as last fallback, not the first one
local function getLabelByLangs(id, languages)
local label, lang
for _, l in ipairs(languages) do
label = mw.wikibase.getLabelByLang(id, l)
if label then
lang = (l == "mul" and languages[1] or l)
break
end
end
return label, lang
end
-- getBestStatements if bestrank=true, else getAllStatements with no deprecated
local function getStatements(entityId, property, bestrank)
local claims = {}
if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end
if bestrank then
claims = mw.wikibase.getBestStatements(entityId, property)
else
local allclaims = mw.wikibase.getAllStatements(entityId, property)
for _, c in ipairs(allclaims) do
if c.rank ~= "deprecated" then
table.insert(claims, c)
end
end
end
return claims
end
-- Is gender femenine? true or false
local function feminineGender(id)
for idn in string.gmatch(id, "Q%d+") do
local claims = mw.wikibase.getBestStatements(idn or mw.wikibase.getEntityIdForCurrentPage(),'P21')
local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"})
if gender_id == nil or not (gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445") then
-- not female, transgender female or female organism
return false
end
end
return true
end
-- Fetch female form of label
local function feminineForm(id, lang)
local feminine_claims = getStatements(id, 'P2521')
for _, feminine_claim in ipairs(feminine_claims) do
if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then
return feminine_claim.mainsnak.datavalue.value.text
end
end
end
-- Add an icon for no label in requested language
local function addLabelIcon(label_id, lang, uselang, icon)
local ret_lang, ret_icon = '', ''
if icon then
if lang and lang ~= uselang then
ret_lang = " <sup>(" .. lang .. ")</sup>"
end
if label_id and (lang == nil or lang ~= uselang) then
local namespace = ''
if string.sub(label_id, 1, 1) == 'P' then
namespace = 'Property:'
end
ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|class=skin-invert|"
.. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain()
.. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]"
untranslated = true
end
if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then
ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]')
end
end
return ret_lang .. ret_icon
end
-- editicon values: true/false (no=false), right, void defaults to i18n.addpencil
-- labelicon only by parameter
local function setIcons(arg, parg)
local val = arg == nil and parg or arg
local edit_icon, label_icon
if not isSet(val) then
edit_icon, label_icon = i18n.addpencil, true
elseif val == false or val == "false" or val == "no" then
edit_icon, label_icon = false, false
else
edit_icon, label_icon = val, true
end
return edit_icon, label_icon
end
-- Add an icon for editing a statement with requirements for future Wikidata Bridge
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or ''
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>'
.. "[[File:Arbcom ru editing.svg|10px|baseline|"
.. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata')
.. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]"
.. "</span>"
if isSet(i18n.categoryprop) then
ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]"
end
end
return ret
end
-- add edit icon to the last element of a table
local function addEditIconTable(thetable, parameters)
if #thetable == 0 or parameters.editicon == false then
return thetable
end
local last_element = thetable[#thetable]
local the_icon = addEditIcon(parameters)
-- add it before last html closing tags
local tags = ''
local rev_element = string.reverse(last_element)
for tag in string.gmatch(rev_element, '(>%l+/<)') do
if string.match(rev_element, '^' .. tags .. tag) then
tags = tags .. tag
else
break
end
end
local last_tags = string.reverse(tags)
local offset = string.find(last_element, last_tags .. '$')
if offset then
thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags
else
thetable[#thetable] = last_element .. the_icon
end
return thetable
end
-- Escape Lua captures
local function captureEscapes(text)
return mw.ustring.gsub(text, "(%%%d)", "%%%1")
end
-- expandTemplate or callParserFunction
local function expandBraces(text, formatting)
if text == nil or formatting == nil then return text end
-- only expand braces if provided in argument, not included in value as in Q1164668
if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end
if type(text) ~= "string" then
text = tostring(text)
end
for braces in mw.ustring.gmatch(text, "{{(.-)}}") do
local parts = mw.text.split(braces, "|")
local title_part = parts[1]
local parameters = {}
for i = 2, #parts do
local subparts = mw.ustring.find(parts[i], "=")
if subparts then
local param_name = mw.ustring.sub(parts[i], 1, subparts - 1)
local param_value = mw.ustring.sub(parts[i], subparts + 1, -1)
-- reconstruct broken links by parts
if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then
parameters[param_name] = param_value
local part_next = i + 1
while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do
parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next]
part_next = part_next + 1
end
else
parameters[param_name] = param_value
end
elseif not mw.ustring.find(parts[i], "]]", 1, true) then
table.insert(parameters, parts[i])
end
end
local braces_expanded
if mw.ustring.find(title_part, ":")
and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template:
then
braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters}
elseif title_part == "!" then
-- template:! may be deleted locally, now provided by MediaWiki
-- although it works, it raises a Lua internal error
braces_expanded = "|"
else
braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters}
end
braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters
braces_expanded = captureEscapes(braces_expanded)
text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded)
end
return text
end
-- format data type math
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
end
-- format data type musical-notation
local function printDatatypeMusical(data, formatting)
local attr = {}
if formatting == 'sound' then
attr.sound = 1
end
return mw.getCurrentFrame():extensionTag('score', data, attr)
end
-- format data type string
local function printDatatypeString(data, parameters)
if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting)
elseif parameters.case then
return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id))
end
local data_number = string.match(data, "^%d+")
if data_number then -- sort key by initial number and remaining string
local sortkey = string.format("%019d", data_number * 1000)
return data, sortkey .. string.sub(data, #data_number + 1)
end
return data
end
-- format data type tabular-data
local function printDatatypeTabular(data, parameters)
local icon
if parameters.formatting == 'raw' then
icon = "no-icon"
data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data
end
return printDatatypeString(data, parameters), icon
end
-- format data type url
local function printDatatypeUrl(data, parameters)
if parameters.formatting == 'weblink' then
local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/')
local label = string.gsub(label_parts[3], '^www%.', '')
if #label_parts > 3 then
label = label .. '…'
end
return '[' .. data .. ' ' .. label .. ']'
end
return printDatatypeString(data, parameters)
end
-- format data type external-id
local function printDatatypeExternal(data, parameters)
if parameters.formatting == 'externalid' then
local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL
local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"})
if p_link_pattern then
local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data})
return '[' .. p_link .. ' ' .. data .. ']'
end
end
return printDatatypeString(data, parameters)
end
-- format data type commonsMedia and geo-shape
local function printDatatypeMedia(data, parameters)
local icon
if not string.find((parameters.formatting or ''), '$1', 1, true) then
icon = "no-icon"
if not string.find(data, '^Data:') then
data = mw.uri.encode(data, 'PATH') -- encode special characters in filename
end
end
return printDatatypeString(data, parameters), icon
end
-- format data type globe-coordinate
local function printDatatypeCoordinate(data, formatting)
local function globes(globe_id)
-- parameter globe in coordinates accepted by GeoHack
-- see [[w:en:Special:PrefixIndex/Template:GeoTemplate]]
local globes = {['Q3343'] = 'ariel', ['Q3134'] = 'callisto', ['Q596'] = 'ceres',
['Q6604'] = 'charon', ['Q7548'] = 'deimos', ['Q15040'] = 'dione', ['Q2'] = 'earth',
['Q3303'] = 'enceladus', ['Q3143'] = 'europa', ['Q3169'] = 'ganymede',
['Q15037'] = 'hyperion', ['Q17958'] = 'iapetus', ['Q3123'] = 'io',
['Q319'] = 'jupiter', ['Q111'] = 'mars', ['Q308'] = 'mercury', ['Q15034'] = 'mimas',
['Q3352'] = 'miranda', ['Q405'] = 'moon', ['Q3332'] = 'oberon', ['Q7547'] = 'phobos',
['Q17975'] = 'phoebe', ['Q339'] = 'pluto', ['Q15050'] = 'rhea', ['Q15047'] = 'tethys',
['Q2565'] = 'titan', ['Q3322'] = 'titania', ['Q3359'] = 'triton',
['Q3338'] = 'umbriel', ['Q313']='venus', ['Q3030']='vesta'}
return globes[globe_id]
end
local function roundPrecision(num, prec)
if prec == nil or prec <= 0 then return num end
local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001
return math.floor(num / sig + 0.5) * sig
end
local precision = data.precision
local latitude = roundPrecision(data.latitude, precision)
local longitude = roundPrecision(data.longitude, precision)
if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then
local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude})
if string.find(formatting, '$globe', 1, true) then
local myglobe = 'earth'
if isSet(data.globe) then
local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2
myglobe = globes(globenum) or 'earth'
end
ret = mw.ustring.gsub(ret, '$globe', myglobe)
end
return expandBraces(ret, formatting)
elseif formatting == 'latitude' then
return latitude, "no-icon"
elseif formatting == 'longitude' then
return longitude, "no-icon"
elseif formatting == 'dimension' then
return data.dimension, "no-icon"
else --default formatting='globe'
if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then
return 'earth', "no-icon"
else
local globenum = mw.text.split(data.globe, 'entity/')[2]
return globes(globenum) or globenum, "no-icon"
end
end
end
-- Local functions for data value quantity
local function unitSymbol(id, lang) -- get unit symbol or code
local unit_symbol = ''
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true)
end
if unit_symbol == '' then
-- fetch it
local claims = mw.wikibase.getBestStatements(id, 'P5061')
if #claims > 0 then
local langclaims = {}
for _, snak in ipairs(claims) do
local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"})
if snak_language and not langclaims[snak_language] then -- just the first one by language
langclaims[snak_language] = snak.mainsnak.datavalue.value.text
end
end
for _, l in ipairs(lang) do
if langclaims[l] then
return langclaims[l]
end
end
end
end
return unit_symbol
end
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]"
else
suffix = unit_symbol
end
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit label
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]"
end
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
end
end
if suffix ~= '' then
suffix = ' ' .. suffix
end
return suffix
end
local function roundDefPrecision(in_num, factor)
-- rounds out_num with significant figures of in_num (default precision)
local out_num = in_num * factor
if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN
return out_num
end
-- first, count digits after decimal mark, handling cases like '12.345e6'
local exponent, prec
local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
-- significant figures
local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001
local out_bracket = in_bracket * out_num / in_num
out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001
-- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound)
return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket
end
-- format data type quantity
local function printDatatypeQuantity(data, parameters)
local amount = data.amount
amount = mw.ustring.gsub(amount, "%+", "")
local suffix = ""
local conv_amount, conv_suffix
if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then
local unit_id = data.unit
unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1)
if string.sub(unit_id, 1, 1) == "Q" then
suffix = getUnit(amount, unit_id, parameters)
local convert_to
if parameters.convert == "default" or parameters.convert == "default2" then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if exist and units.convert_default and next(units.convert_default) ~= nil then
convert_to = units.convert_default[unit_id]
end
elseif string.sub(parameters.convert or '', 1, 1) == "Q" then
convert_to = parameters.convert
elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then
convert_to = 'Q11574' -- seconds
end
if convert_to and convert_to ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
}
if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount))
conv_amount = math.floor(tonumber(amount_f) + 0.5)
else
local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit
table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit
for _, conv in ipairs(conversions) do
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then
conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount))
break
end
end
end
end
if conv_amount then
conv_suffix = getUnit(conv_amount, convert_to, parameters)
end
elseif parameters.convert == 'M' then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if wiki.langcode == parameters.lang[1]
and exist and units.convert2M and type(units.convert2M) == "function"
then
conv_amount, conv_suffix = units.convert2M(amount)
conv_suffix = (conv_suffix or "").. suffix
elseif tonumber(amount) > 10^8 then
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. mw.text.trim(suffix)
end
end
if conv_amount and parameters.formatting == 'raw' then
amount = conv_amount
suffix = ""
conv_amount = nil
end
end
end
local lang_obj = mw.language.new(parameters.lang[1])
local sortkey = string.format("%019d", tonumber(amount) * 1000)
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == 'duration' then
return lang_obj:formatDuration(sec)
elseif parameters.formatting == 'durationm:s' then
local mm = math.floor(sec / 60)
local ss = sec - (mm * 60)
return string.format("%02d:%02d", mm, ss)
else -- durationhms or durationh:m:s
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals
local duration = ''
for i, v in ipairs(intervals) do
if parameters.formatting == 'durationh:m:s' then
if i == 1 and sec2table[v] then
duration = duration .. sec2table[v] .. ":"
elseif i == 2 then
duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":"
elseif i == 3 then
local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0))
duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str
end
elseif sec2table[v] then
duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "")
end
end
return duration
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id))
elseif parameters.formatting ~= 'raw' then
if parameters.numformat then
amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount)))
else
amount = lang_obj:formatNum(tonumber(amount))
end
end
if conv_amount then
local conv_sortkey = string.format("%019d", conv_amount * 1000)
conv_amount = lang_obj:formatNum(conv_amount)
if parameters.convert == 'default2' then
return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey
else
return conv_amount .. conv_suffix, conv_sortkey
end
elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern
amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount})
end
return amount .. suffix, sortkey
end
-- format data type time
local function printDatatypeTime(data, parameters)
-- Dates and times are stored in ISO 8601 format
local timestamp = data.time
if parameters.formatting == "raw" then
return timestamp, timestamp
end
local post_format
local calendar_add = ""
local precision = data.precision or 11
if string.sub(timestamp, 1, 1) == '-' then
post_format = i18n.datetime["bc"]
elseif string.sub(timestamp, 2, 3) == '00' then
post_format = i18n.datetime["ad"]
elseif precision > 8 then
-- calendar model
local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"}
local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2]
if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian")
or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian")
then
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end
local function formatTime(form, stamp)
local pattern
if type(form) == "function" then
pattern = form(stamp)
else
pattern = form
end
stamp = tostring(stamp)
if mw.ustring.find(pattern, "$1") then
return mw.ustring.gsub(pattern, "$1", stamp)
elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0
stamp = '+' .. string.sub(stamp, 2)
elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number
stamp = string.format("%04d", stamp)
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
end
local function postFormat(t)
if post_format and mw.ustring.find(post_format, "$1") then
return mw.ustring.gsub(post_format, "$1", t)
end
return t
end
local intyear = tonumber(string.match(timestamp, "[+-](%d+)"))
local ret = ""
if precision <= 5 then -- precision is 10000 years or more
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = formatTime(i18n.datetime[precision], y2)
if post_format == i18n.datetime["bc"] then
ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
local ret_number = string.match(ret, "%d+")
if ret_number ~= nil then
ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number)))
end
elseif precision == 6 or precision == 7 then -- millennia or centuries
local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1
ret = formatTime(i18n.datetime[precision], card)
ret = postFormat(ret)
elseif precision == 8 then -- decades
local card = math.floor(math.abs(intyear) / 10) * 10
ret = formatTime(i18n.datetime[8], card)
ret = postFormat(ret)
elseif intyear > 9999 then -- not a valid timestamp
return
elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year
ret = formatTime(i18n.datetime[9], intyear)
ret = postFormat(ret) .. calendar_add
elseif precision == 10 then -- month
ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month
ret = postFormat(ret) .. calendar_add
else -- precision 11, day
ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp)
ret = postFormat(ret) .. calendar_add
end
return ret, timestamp
end
-- format data value wikibase-entityid with data types wikibase-item or wikibase-property
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local entity_page = 'Special:EntityPage/' .. entity_id
local label, lang = getLabelByLangs(entity_id, parameters.lang)
local sitelink = mw.wikibase.getSitelink(entity_id)
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.gender == 'feminineform' then
labelcase = feminineForm(entity_id, lang) or labelcase
end
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
if labelcase == nil and i18n.qidlabels == false then
return
end
local ret1, ret2
if parameter == 'label' then
ret1 = labelcase or entity_id
ret2 = labelcase or entity_id
elseif parameter == 'sitelink' then
ret1 = (sitelink or 'd:' .. entity_page)
ret2 = sitelink or entity_id
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id)
ret1 = expandBraces(ret1, parameter)
ret2 = labelcase or entity_id
else
if parameter == "ucfirst" or parameter == "ucinternallink" then
if labelcase and lang then
labelcase = mw.language.new(lang):ucfirst(labelcase)
end
-- only first of a list, reset formatting for next ones
if parameter == "ucinterlanllink" then
parameters.formatting = 'internallink'
else
parameters.formatting = nil -- default format
end
end
if sitelink then
ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]'
ret2 = labelcase
elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then
ret1 = '[[' .. label .. '|' .. labelcase .. ']]'
ret2 = labelcase
else
ret1 = '[[d:' .. entity_page .. '|' .. (labelcase or entity_id) .. ']]'
ret2 = labelcase or entity_id
end
end
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
-- format data type wikibase-lexeme
local function printDatatypeLexeme(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local lemmas = mw.wikibase.getEntity(entity_id):getLemmas()
if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then
return
end
local ret = '[[d:Special:EntityPage/' .. entity_id .. '|' .. lemmas[1][1] .. ']]'
if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then
ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>"
end
return ret, entity_id
end
-- format data type monolingualtext
local function printDatatypeMonolingual(data, parameters)
-- data fields: language [string], text [string]
local valid_lang = {[parameters.lang[1]] = true, ["mul"] = true}
if parameters.list == "lang" and not valid_lang[data["language"]] then
return
elseif parameters.list == "notlang" and valid_lang[data["language"]] then
return
elseif parameters.formatting == "language" or parameters.formatting == "text" then
return data[parameters.formatting]
end
local result = data["text"]
valid_lang = {[wiki.langcode] = true, ["mul"] = true}
if not valid_lang[data["language"]] then
result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]})
end
if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then
-- output format defined with $text, $language
result = mw.ustring.gsub(parameters.formatting, '$text', result)
result = mw.ustring.gsub(result, '$language', data["language"])
end
return result
end
local function getSnakValue(snak, parameters)
parameters.editbridge = false
if snak.snaktype == 'value' then -- see Special:ListDatatypes
-- data value string
if snak.datatype == "string" then
parameters.editbridge = true -- Wikidata Bridge currently only for string values
return printDatatypeString(snak.datavalue.value, parameters)
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "tabular-data" then
return printDatatypeTabular(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
elseif snak.datatype == "external-id" then
return printDatatypeExternal(snak.datavalue.value, parameters)
elseif snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- data types other than string value
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
if i18n.suppress[snak.datavalue.value.id] then
return
end
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'wikibase-lexeme' then
return printDatatypeLexeme(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
elseif snak.datatype == "globe-coordinate" then
return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting)
elseif snak.datatype == "quantity" then
return printDatatypeQuantity(snak.datavalue.value, parameters)
elseif snak.datatype == "time" then
return printDatatypeTime(snak.datavalue.value, parameters)
end
elseif snak.snaktype == 'novalue' then
if parameters.formatting == 'raw' or parameters.shownovalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw' or parameters.showsomevalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
return mw.wikibase.renderSnak(snak)
end
local function printError(key)
return '<span class="error">' .. i18n.errors[key] .. '</span>'
end
local function getQualifierSnak(claim, qualifierId, parameters)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then
if qualifier[1].datatype == "monolingualtext" then
-- iterate over monolingualtext qualifiers to get languages
local qual_lang, qual_mul
for idx in pairs(qualifier) do
qual_lang = getSnak(qualifier[idx], {"datavalue", "value", "language"})
if qual_lang == parameters.lang[1] then
return qualifier[idx] -- return local language if found
elseif qual_lang == "mul" then
qual_mul = qualifier[idx]
end
end
return qual_mul -- else return multilingual
elseif parameters.list then
return qualifier
else
return qualifier[1]
end
end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameters)
local snak, error = getQualifierSnak(claim, qualifierId, parameters)
if not snak then
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.listmax)
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
if maxvals and maxvals == #result then break end
end
return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1]
else -- a property or a qualifier
return getSnakValue(snak, parameters)
end
end
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local value, sortkey, valueraw = {}, {}, {}
local parent_raw, value_text
if qids[1] == parameters.property then
parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
for idx, p_qid in ipairs(parent_qids) do
local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2])
if parent_claims[1] then
value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters)
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
if value[1] then
value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction)
end
return value_text, sortkey[1], valueraw[1]
end
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not (parameters.references or parameters.onlysourced) then
return '', false
end
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
local notproperref = {
["P143"] = true, -- imported from
["P3452"] = true, -- inferred from
["P887"] = true, -- based on heuristic
["P4656"] = true -- Wikimedia import URL
}
local result = {}
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
local refs = {}
local validref = true
local ref_id
-- traverse through all parts of the current reference
for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do
for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do
if notproperref[snakkey] then -- not a proper reference
validref = false
break
end
end
if validref then
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
if snakval[snakidx].datatype == 'external-id' then
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '')
else
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '')
end
end
refs[snakkey] = refparts
refparts = nil
if snakkey == "P248" then -- stated in
ref_id = getSnak(snakval, {1, "datavalue", "value", "id"})
end
end
end
-- fill missing values with parent item
if ref_id then
local function refParent(qid, pid, formatting)
local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"})
return snak and getSnakValue(snak, {formatting=formatting, lang=lang})
end
refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author
refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work
refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher
refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date
refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in
refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s)
refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue
refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN
refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI
end
-- get title of local templates for citing references
local template_web = mw.wikibase.getSitelink('Q5637226') or ""
template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front
local template_journal = mw.wikibase.getSitelink('Q5624899') or ""
template_journal = mw.text.split(template_journal, ":")[2]
local citeParams = {}
if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then
-- if both "reference URL" and "title" (or "stated in") are present, then use cite web template
citeParams[i18n['cite']['url']] = refs['P854']
if refs['P248'] and refs['P1476'] == nil then
citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]")
else
citeParams[i18n['cite']['title']] = refs['P1476']
citeParams[i18n['cite']['website']] = refs['P248']
end
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['publisher']] = refs['P123']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['access-date']] = refs['P813']
citeParams[i18n['cite']['archive-url']] = refs['P1065']
citeParams[i18n['cite']['archive-date']] = refs['P2960']
citeParams[i18n['cite']['quote']] = refs['P1683']
refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams}
elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then
-- if both "published in" and "title" (or "stated in") are present, then use cite journal template
citeParams[i18n['cite']['work']] = refs['P1433']
citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248']
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['issue']] = refs['P433']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['issn']] = refs['P236']
citeParams[i18n['cite']['doi']] = refs['P356']
refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams}
elseif validref then
-- raw ouput
local snaksorder = claim.references[ref]["snaks-order"]
local function indexed(a)
for _, b in ipairs(snaksorder) do
if b == a then return true end
end
return false
end
for k, _ in pairs(refs or {}) do
if not indexed(k) then
table.insert(snaksorder, k)
end
end
local italics = "''"
local ref_label
for _, k in ipairs(snaksorder) do
if refs[k] then
refparts = refparts and refparts .. " " or ""
ref_label = case('infoboxlabel', getLabelByLangs(k, lang) or '')
refparts = refparts .. mw.ustring.gsub(ref_label, "^%l", mw.ustring.upper) .. ": "
refparts = refparts .. italics .. refs[k] .. italics .. "."
italics = ""
end
end
end
if refparts then
local ref_name = claim.references[ref].hash
result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name})
if maxrefs and maxrefs == #result then break end
end
end
if #result > 0 then
if parameters.references then
if isSet(i18n.categoryref) then
result[#result + 1] = "[[" ..i18n.categoryref .. "]]"
end
return table.concat(result), true
else
return '', true
end
end
return '', false
end
-- Set lists of filtered values
local function setFilterLists(num_qual, args)
local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}}
for i = 0, num_qual do
for k, _ in pairs(lists) do
if isSet(args[k .. i]) then
lists[k][tostring(i)] = {}
local pattern = 'Q%d+'
if string.sub(args[k .. i], 1, 1) ~= 'Q' then
pattern = '[^%p%s]+'
end
for q in string.gmatch(args[k .. i], pattern) do
lists[k][tostring(i)][q] = true
end
end
end
end
return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue']
end
local function tableParameters(args, parameters, column)
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
column_params.case = args["case" .. column]
end
return column_params
end
local function getEntityId(args, pargs, unnamed)
pargs = pargs or {}
local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil)
if not isSet(id) then
id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil)
end
if isSet(id) then
if string.find(id, ":") then -- remove prefix as Property:Pid
id = mw.text.split(id, ":")[2]
end
else
id = mw.wikibase.getEntityIdForCurrentPage()
end
return id
end
local function getArg(value, default, aliases)
if type(value) == 'boolean' then return value
elseif value == "false" or value == "no" then return false
elseif value == "true" or value == "yes" then return true
elseif value and aliases and aliases[value] then return aliases[value]
elseif isSet(value) then return value
elseif default then return default
else return nil
end
end
-- Main function claim ---------------------------------------------
-- on debug console use: =p.claim{item="Q...", property="P...", ...}
function p.claim(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local is_sandbox = isSet(pargs.sandbox)
if not required and is_sandbox then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame)
end
--If a value is already set, use it
if isSet(args.value) then
if args.value == 'NONE' then
return
else
return args.value
end
end
-- arguments
local parameters = {}
parameters.id = getEntityId(args, pargs)
if parameters.id == nil then return end
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))
local i = 2
while isSet(args["qualifier" .. i]) do
qualifierId[i] = string.upper(args["qualifier" .. i])
i = i + 1
end
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.numformat = getArg(args.numformat)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.listmax = args.listmax
parameters.listrank = getArg(args.listrank)
if type(parameters.list) == "number" then -- backwards compatibility
parameters.listmax = parameters.listmax or parameters.list
parameters.list = true
elseif parameters.list == "bestrank" then
parameters.listrank = parameters.listrank or "bestrank"
parameters.list = true
end
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.showsomevalue = getArg(args.showsomevalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator = getArg(args.qseparator, parameters.separator)
parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction)
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references = getArg(args.references, false)
parameters.onlysourced = getArg(args.onlysourced, false)
local showerrors = args.showerrors
local default = args.default
if default then showerrors = nil end
parameters.lang = findLang(args.lang)
if parameters.formatting == "raw" then
parameters.editicon, parameters.labelicon = false, false
else
parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand
end
-- fetch property
local claims = {}
local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang'
for p in string.gmatch(parameters.property, 'P[%d/P]+') do -- P123 or P45/P67
if string.find(p, ".+/.+") then
local props = mw.text.split(p, "/")
local claims_child = {}
claims_child = getStatements(parameters.id, props[1], bestrank)
if #claims_child > 0 then
local parent_id, _, _ = getValueOfClaim(claims_child[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
if string.sub(parent_id or '', 1, 1) == "Q" then
claims = getStatements(parent_id, props[2], bestrank)
if #claims > 0 then
parameters.property = props[1]
break
end
end
end
else
claims = getStatements(parameters.id, p, bestrank)
if #claims > 0 then
parameters.property = p
break
end
end
end
if #claims == 0 then
local ret = showerrors and printError("property-not-found") or default
return ret, args.query == 'num' and 0 or ''
end
-- defaults for table
local preformat, postformat = "", ""
local whitelisted = false
local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {}
if parameters.formatting == "table" then
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain())
parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator)
if not rowformat then
rowformat = "$0 ($1"
i = 2
while qualifierId[i] do
rowformat = rowformat .. ", $" .. i
i = i + 1
end
rowformat = rowformat .. ")"
elseif mw.ustring.find(rowformat, "^[*#]") then
parameters.separator = "</li><li>"
parameters.conjunction = "</li><li>"
if mw.ustring.match(rowformat, "^[*#]") == "*" then
preformat = "<ul><li>"
postformat = "</li></ul>"
else
preformat = "<ol><li>"
postformat = "</li></ol>"
end
rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "")
end
-- set lists of filtered values
whitelist, blacklist, ignorevalue, selectvalue = setFilterLists(#qualifierId, args)
local next = next
if next(whitelist) ~= nil then whitelisted = true end
end
-- set feminine case if gender is requested
local itemgender = args.itemgender
local idgender
if itemgender then
if string.match(itemgender, "^P%d+$") then
local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"})
if snak_id then
idgender = snak_id
end
elseif string.match(itemgender, "^Q%d+$") then
idgender = itemgender
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
gender_requested = true
elseif parameters.formatting == "table" then
for i=0, #qualifierId do
if args["case" .. i] and args["case" .. i] == "gender" then
gender_requested = true
break
end
end
end
if gender_requested then
if feminineGender(idgender or parameters.id) then
parameters.gender = "feminineform"
end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result, result2, result_query
local error
if parameters.list or parameters.formatting == "table" then
-- convert LF to line feed, <br /> may not work on some cases
parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator
parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction
-- i18n separators
parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()
parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain())
-- iterate over all elements and return their value (if existing)
local value, valueq
local sortkey, sortkeyq
local values = {}
local sortkeys = {}
local refs = {}
local rowlist = {} -- rows to list with whitelist or blacklist
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
local reference = {}
if not whitelisted then rowlist[idx] = true end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0")
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
if whitelist["0"] or blacklist["0"] then
local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang})
if whitelist["0"] and whitelist["0"][valueraw or ""] then
rowlist[#values] = true
elseif blacklist["0"] and blacklist["0"][valueraw or ""] then
rowlist[#values] = false
end
end
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j)
local valueq, sortkeyq, valueraw
if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw
valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params)
else
for q in mw.text.gsplit(qual, '%s*OR%s*') do
if string.find(q, ".+/.+") then
valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params)
elseif string.find(q, "^/.+") then
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
-- only first value of a property as alternative to a qualifier
-- multiple values may not be related to a given raw of the table
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
else
valueq, sortkeyq, _ = getValueOfClaim(claim, q, params)
end
if valueq then
qual = q
break
end
end
end
values[#values]["col" .. j] = valueq
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang, ["list"]=params.list})
if valueq then
if whitelist[j] then
for k, v in pairs(whitelist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = true
end
end
elseif blacklist[j] then
for k, v in pairs(blacklist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = false
end
end
elseif ignorevalue[j] then
for k, v in pairs(ignorevalue[j]) do
if v and string.find(valueq, k, 1, true) then
values[#values]["col" .. j] = nil
end
end
elseif selectvalue[j] then
local selected
for k, v in pairs(selectvalue[j]) do
if v and string.find(valueq, k, 1, true) then
selected = true
end
end
if selected == nil then
values[#values]["col" .. j] = nil
end
end
end
end
end
end
else
value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters)
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
end
if not value and showerrors then value = error end
if value then
if (parameters.references or parameters.onlysourced) and claim.references then
reference = claim.references
end
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
sortkeys[#sortkeys]["col0"] = sortkey or value
end
end
-- sort and format results
sortindices = {}
for idx in pairs(values) do
sortindices[#sortindices + 1] = idx
end
if sorting_col then
local sorting_table = mw.text.split(sorting_col, '%D+')
local comparator = function(a, b)
local valuea, valueb
local i = 1
while valuea == valueb and i <= #sorting_table do
valuea = sortkeys[a]["col" .. sorting_table[i]] or ''
valueb = sortkeys[b]["col" .. sorting_table[i]] or ''
i = i + 1
end
if sorting_up then
return valueb > valuea
end
return valueb < valuea
end
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.listmax)
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters)
value = valuerow["col0"]
if parameters.formatting == "table" then
if not rowlist[sortindices[idx]] then
value = nil
else
local rowformatting = rowformat .. "$" -- fake end character added for easy gsub
value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value})
value = mw.ustring.gsub(value, "$R0", reference) -- add reference
for i, _ in ipairs(qualifierId) do
local valueq = valuerow["col" .. i]
if args["rowsubformat" .. i] and isSet(valueq) then
-- add fake end character $
-- gsub $i not followed by a number so $1 doesn't match $10, $11...
-- remove fake end character
valueq = captureEscapes(valueq)
valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1")
valueq = string.sub(valueq, 1, -2)
rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1")
end
valueq = valueq and captureEscapes(valueq) or ''
value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1")
end
value = string.sub(value, 1, -2) -- remove fake end character
value = expandBraces(value, rowformatting)
end
elseif value then
value = expandBraces(value, parameters.formatting)
value = value .. reference
end
if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
break
end
end
end
if args.query == 'num' then
result_query = #result
end
if #result > 0 then
if parameters.formatting == 'table' then
result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element
end
result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat
else
result = ''
end
else
-- return first element
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result then
local ref, valid_ref = getReferences(claim, parameters)
if parameters.onlysourced and valid_ref == false then
result = nil
else
result = result .. ref
end
end
if args.query == 'num' then result_query = result and 1 or 0 end
end
if isSet(result) then
if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then
-- add edit icon, except table added previously and except explicit no-icon internal flag
result = result .. addEditIcon(parameters)
end
else
if showerrors then result = error else result = default end
end
if args.query == 'untranslated' and required and not is_sandbox then
result_query = untranslated
end
return result, result_query or ''
end
-- Local functions for getParentValues -----------------------
local function uc_first(word)
if word == nil then return end
return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2)
end
local function getPropertyValue(id, property, parameter, langs, labelicon, case)
local snaks = mw.wikibase.getBestStatements(id, property)
local mysnak = getSnak(snaks, {1, "mainsnak"})
if mysnak == nil then
return
end
local entity_id
local result = '-' -- default for 'no value'
if mysnak.datavalue then
entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id'])
result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case})
end
return entity_id, result
end
local function getParentObjects(id,
prop_format,
label_format,
languages,
propertySupString,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
grammatical_case,
include_self)
local propertySups = mw.text.split(propertySupString, '[^P%d]')
local maxloop = 10
if upto_number then
maxloop = upto_number
elseif next(upto_label) or next(upto_value) then
maxloop = 50
end
local labels_filter = next(label_show)
local result = {}
local id_value = id
for iter = 1, maxloop do
local link, label, labelwicon, linktext, id_label
for _, propertySup in pairs(propertySups) do
local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case)
if _id_value and _link then id_value = _id_value; link = _link break end
end
if not id_value or not link then break end
if propertyLink then
_, linktext = getPropertyValue(id_value, propertyLink, "label", languages)
if linktext then
link = link .. " (" .. linktext .. ")"
end
end
id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel")
if labelicon0 then
_, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
else
labelwicon = label
end
if labels_filter == nil or (label_show[id_label] or label_show[label]) then
result[#result + 1] = {labelwicon, link}
label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found
end
if upto_label[id_label] or upto_label[label] or upto_value[id_value] then
break
end
end
if last_only then
result = {result[#result]}
end
if include_self then
local label_self, link_self
_, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
link_self, _ = getLabelByLangs(id, languages)
table.insert(result, 1, {label_self, link_self})
end
return result
end
local function parentObjectsToString(result,
rowformat,
cascade,
sorting)
local ret = {}
local first = 1
local last = #result
local iter = 1
if sorting == "-1" then first = #result; last = 1; iter = -1 end
for i = first, last, iter do
local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]})
ret[#ret + 1] = expandBraces(rowtext, rowformat)
end
if cascade then
local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left"
local suffix = ""
for i = 1, #ret do
ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i]
suffix = suffix .. '</li></ul>'
end
ret[#ret] = ret[#ret] .. suffix
end
return ret
end
-- Returns pairs of parent label and property value fetching a recursive tree
function p.getParentValues(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame)
end
local id = getEntityId(args, pargs)
if id == nil then return end
local languages = findLang(args.lang)
local propertySup = getArg(args.property, "P131") --administrative entity
local propertyLabel = getArg(args.label, "P31") --instance
local propertyLink = getArg(args.valuetext)
local property_format = getArg(args.formatting)
local label_format = getArg(args.labelformat, "label")
local upto_number = getArg(args.upto)
local last_only = getArg(args.last_only, false)
local editicon, labelicon = setIcons(args.editicon, pargs.editicon)
local include_self = getArg(args.include_self, false)
local case = getArg(args.case)
local upto_label = {}
for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do
upto_label[q] = true
end
if type(tonumber(upto_number)) == "number" then
upto_number = tonumber(upto_number)
elseif type(upto_number) == 'string' then
upto_number = nil
require(wiki.module_title .. '/debug').track('upto') -- replace upto by uptolabelid
end
local upto_value = {}
for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do
upto_value[q] = true
end
local label_show = {}
for q in string.gmatch(args.showlabelid or '', 'Q%d+') do
label_show[q] = true
end
for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do
if v ~= '' then
label_show[uc_first(v)] = true
require(wiki.module_title .. '/debug').track('labelshow') -- replace labelshow by showlabelid
end
end
local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end
local labelicon0, labelicon1 = labelicon, labelicon
if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then
labelicon0 = false
end
local result = getParentObjects(id,
property_format,
label_format,
languages,
propertySup,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
case,
include_self)
if #result == 0 then return end
local separator = args.separator; if not isSet(separator) then separator = "<br />" end
local sorting = args.sorting; if sorting == "" then sorting = nil end
local cascade = (args.cascade == "true" or args.cascade == "yes")
local ret = parentObjectsToString(result,
rowformat,
cascade,
sorting)
ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages})
return mw.text.listToText(ret, separator, separator)
end
-- Link with a parent label --------------------
function p.linkWithParentLabel(frame)
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame)
end
local args = {}
if frame.args then
for k, v in pairs(frame.args) do -- metatable
args[k] = v
end
else
args = frame -- via require
end
if isSet(args.value) then
return args.value
end
-- get id value of property/qualifier
local largs = mw.clone(args)
largs.list = tonumber(args.list) and args.list or true
largs.formatting = "raw"
largs.separator = "/·/"
largs.editicon = false
local items_list, _ = p.claim(largs)
if not isSet(items_list) then return end
local items_table = mw.text.split(items_list, "/·/", true)
-- get internal link of property/qualifier
if isSet(args.formatting) then
largs.formatting = nil -- default link if defined with any value
else
largs.formatting = "internallink"
end
local link_list, _ = p.claim(largs)
local link_table = mw.text.split(link_list, "/·/", true)
-- get label of parent property
local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"})
if parent_claim == 'monolingualtext' then
largs.formatting = nil
largs.list = 'lang'
else
largs.formatting = "label"
largs.list = false
end
largs.property = args.parent
largs.qualifier = nil
for i, v in ipairs(items_table) do
largs.item = v
local link_label, _ = p.claim(largs)
if isSet(link_label) then
link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
args.editicon, _ = setIcons(args.editicon, pargs.editicon)
args.id = getEntityId(args, pargs)
args.lang = findLang(args.lang)
return mw.text.listToText(link_table) .. addEditIcon(args)
end
-- Calculate number of years old ----------------------------
function p.yearsOld(frame)
if not required and frame.args and isSet(frame:getParent().args.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame)
end
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return end
local lang = mw.language.new('en')
local function getBestDate(id, prop)
local mainsnak = getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak"})
if mainsnak and mainsnak.snaktype then
if mainsnak.snaktype == "somevalue" then
return {time = nil, precision = 0}
elseif mainsnak.snaktype == "value" then
return getSnak(mainsnak, {"datavalue", "value"})
end
end
return {time = nil, precision = nil}
end
local birth = getBestDate(id, 'P569')
if birth.time == nil or birth.precision < 8 then
return
end
local death = getBestDate(id, 'P570')
if death.precision and death.precision < 8 then -- includes somevalue
return
elseif death.time == nil then
death = {time = lang:formatDate('c'), precision = 11} -- current date
end
local dates = {}
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "-(%d%d)-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "-(%d%d)-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
for i, d in ipairs(dates) do
if d.precision == 10 then -- month
d.min.day = 1
local timestamp = string.format("%04d", tostring(math.abs(d.max.year)))
.. string.format("%02d", tostring(d.max.month))
.. "01"
d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day"))
elseif d.precision < 10 then -- year or decade
d.min.day = 1
d.min.month = 1
d.max.day = 31
d.max.month = 12
if d.precision == 8 then -- decade
d.max.year = d.max.year + 9
end
end
end
local function age(d1, d2)
local years = d2.year - d1.year
if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then
years = years - 1
end
if d2.year > 0 and d1.year < 0 then
years = years - 1 -- no year 0
end
return years
end
local old_min = age(dates[1].max, dates[2].min)
local old_max = age(dates[1].min, dates[2].max)
if old_max > 200 then
require(wiki.module_title .. '/debug').track('200yo')
end
local old, old_expr
if old_min == 0 and old_max == 0 then
old = "< 1"
old_max = 1 -- expression in singular
elseif old_min == old_max then
old = old_min
else
old = old_min .. "/" .. old_max
end
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo
local yo_pl = {}
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"]
end
if not isSet(yo_pl[2]) then
local yo_label, _ = getLabelByLangs('Q24564698', langs)
yo_pl = {yo_label, yo_label}
end
yo = mw.language.new(langs[1]):plural(old_max, yo_pl)
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
else
old_expr = old .. ' ' .. yo
end
elseif args.formatting then
old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting)
else
old_expr = old
end
return old_expr
end
-- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked.
function p.getLabel(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame)
end
local id = getEntityId(args, pargs, 1)
if id == nil then return end
local languages = findLang(args.lang)
local labelicon = false
if mw.wikibase.isValidEntityId(id) then
_, labelicon = setIcons(args.editicon, pargs.editicon)
end
local label_icon = ''
local label, lang
if args.label then
label = args.label
else
-- exceptions or labels fixed
local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1]))
if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then
label = labels.infoboxLabelsFromId[id]
end
if label == nil then
label, lang = getLabelByLangs(id, languages)
if label then
if isSet(args.itemgender) then
if feminineGender(args.itemgender) then
label = feminineForm(id, lang) or label
end
local _, items_g = string.gsub(args.itemgender, "Q%d+", "")
if not isSet(args.case) and items_g > 1 then
args.case = "plural"
end
end
label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize
if args.case then
label = case(args.case, label, lang)
end
end
label_icon = addLabelIcon(id, lang, languages[1], labelicon)
end
end
local linked = args.linked
local ret2 = required and untranslated or ''
if isSet(linked) and linked ~= "no" then
local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id)
return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2
else
return (label or id) .. label_icon, ret2
end
end
function p.sitelinks(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
-- arguments
local param = {}
param.id = getEntityId(args, pargs)
if param.id == nil then return end
param.project = getArg(args.project)
param.site = getArg(args.site)
param.sitelang = getArg(args.sitelang)
param.show = getArg(args.formatting, '[[$w:$l:$t|$s:$t]] $i')
param.sep = getArg(args.separator, ', ')
-- fetch sitelinks
local sitelinks_obj = mw.wikibase.getEntity(param.id).sitelinks
local slinks = {} -- do some clean up (commonswiki > commons) and add some data
local iw = {['wikipedia'] = 'w', ['wikibooks'] = 'b', ['wikinews'] = 'n', ['wikiquote'] = 'q',
['wikisource'] = 's', ['wikiversity'] = 'v', ['wikivoyage'] = 'voy', ['wiktionary'] = 'wikt', ['commons'] = 'c',
['meta'] = 'm', ['mediawiki'] = 'mw', ['species'] = 'species', ['wikidata'] = 'd', ['wikifunctions'] = 'f'}
for slink, sdata in pairs(sitelinks_obj) do
-- langcode + wiki, wikibooks, wikinews, wikiquote, wikisource, wikiversity, wikivoyage, wiktionary
local s_lang = string.match(slink, '(%l+)wik[it]')
local s_project = string.match(slink, 'wik[it]%l*')
if slink == 'commonswiki' or slink == 'metawiki' or slink == 'mediawikiwiki'
or slink == 'specieswiki' or slink == 'wikidatawiki' or slink == 'wikifunctionswiki'
then
s_project = string.sub(slink, 1, -5) -- remove -wiki
slinks[s_project] = {['lang'] = 'und', ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiki' then -- restore project full name
slinks[slink] = {['lang'] = s_lang, ['project'] = 'wikipedia', ['iw'] = 'w', ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiktionary' then -- use short site name
s_project = string.sub(slink, 1, -7)
slinks[s_project] = {['lang'] = s_lang, ['project'] = 'wiktionary', ['iw'] = 'wikt', ['title'] = sdata.title, ['badges'] = sdata.badges}
else
slinks[slink] = {['lang'] = s_lang, ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
end
end
-- select requested project, site, sitelang
local slinks_req = {}
if not (param.project or param.site or param.sitelang) then
slinks_req = slinks
else
for pr in string.gmatch(param.project or '', '%l+') do -- lowercase letters, skip separators
for sl, sd in pairs(slinks) do
if sd.project == pr then
slinks_req[sl] = sd
end
end
end
for s in string.gmatch(param.site or '', '%l+') do
for sl, sd in pairs(slinks) do
if sl == s then
slinks_req[sl] = sd
end
end
end
for l in string.gmatch(param.sitelang or '', '%l+') do
for sl, sd in pairs(slinks) do
if sd.lang == l then
slinks_req[sl] = sd
end
end
end
end
-- sort table
local sites_sorted = {}
for sitex in pairs(slinks_req) do
sites_sorted[#sites_sorted + 1] = sitex
end
local sort_project_lang = function(a, b)
local key_a = slinks_req[a].project .. slinks_req[a].lang
local key_b = slinks_req[b].project .. slinks_req[b].lang
return key_a < key_b
end
table.sort(sites_sorted, sort_project_lang)
-- format output
local showtext = {}
local shownum, showbnum = 0, 0
for _, sl in ipairs(sites_sorted) do
local sd = slinks_req[sl]
local show = param.show -- default '[[$w:$l:$t|$s:$t]] $i' iw:lang:title, site:title icon, also $p project
show = string.gsub(show, '$w', sd.iw)
show = string.gsub(show, '$p', sd.project)
if sd.lang == 'und' then
show = string.gsub(show, '$l:?', '')
else
show = string.gsub(show, '$l', sd.lang)
end
show = string.gsub(show, '$t', sd.title)
show = string.gsub(show, '$s', sl)
if next(sd.badges) then
show = string.gsub(show, '$i', '[[File:Article de qualité.svg|15x15px]]')
showbnum = showbnum + 1
else
show = string.gsub(show, ' ?$i', '')
end
if show ~= param.show then
table.insert(showtext, show)
end
shownum = shownum + 1
end
local output
if string.find(param.show, '$[nb]') then
output = string.gsub(param.show, '$n', shownum) -- number of sites
output = string.gsub(output, '$b', showbnum) -- number of badges
else
output = table.concat(showtext, param.sep)
end
return output
end
-- Utilities -----------------------------
-- See also module ../debug.
-- Copied from Module:Wikibase
function p.getSiteLink(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs, 1)
if id == nil then return end
return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or ''))
end
-- Helper function for the default language code used
function p.lang(frame)
local lang = frame and frame.args[1] -- nil via require
return findLang(lang)[1]
end
-- Number of statements
function p.numStatements(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return 0 end
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) then
local largs = {}
for k, v in pairs(pargs) do
largs[k] = v
end
for k, v in pairs(args) do
largs[k] = v
end
largs.query = 'num'
_, num = p.claim(largs)
return num
elseif args[2] then -- qualifier
local qual = mw.text.trim(args[2])
local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'}
if values then
num = mw.text.split(values, '/·/')
end
else
num = mw.wikibase.getBestStatements(id, prop)
end
return #num
end
-- Returns true if property datavalue is found excluding novalue/somevalue
function p.validProperty(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local item = getEntityId(args, pargs)
if item == nil then return end
local property = mw.text.trim(args[1])
local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"})
return prop_data and true or nil
end
function p.editAtWikidata(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local value = isSet(args[1])
if value then return end
local param = {}
param.id = getEntityId(args, pargs)
param.property = args.property
param.lang = findLang(args.lang)
param.editicon, _ = setIcons(args.editicon)
return addEditIcon(param)
end
function p.formatNum(frame)
local num = tonumber((mw.text.trim(frame.args[1] or "")):gsub("%%", ""):gsub("٪", ""))
local lang = findLang(mw.text.trim(frame.args[2]))
return mw.language.new(lang[1]):formatNum(num)
end
return p
ppqsdrp7p8xwix7th1kl0c9z4v7febe
142925
142924
2026-06-26T08:58:05Z
آیات محراج
11062
142925
Scribunto
text/plain
-- version 20260211 from master @cawiki
-- changes from previous version:
-- new function sitelinks
local p = {}
-- Initialization of variables --------------------
local i18n = { -- internationalisation at subpage /i18n
["errors"] = {
["property-not-found"] = "Property not found.",
["qualifier-not-found"] = "Qualifier not found.",
},
["datetime"] = {
-- $1 is a placeholder for the actual number
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = "$1 BCE", -- how print negative years
["ad"] = "$1", -- how print 1st century AD dates
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100000 years", -- precision: hundred thousand years; thousand separators added afterwards
[5] = "$10000 years", -- precision: ten thousand years; thousand separators added afterwards
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs
},
["years-old"] = {"", ""}, -- year(s) old, as in magic word {PLURAL:$1|singular|plural}
-- two values for most languages, up to six values for some languages, examples:
-- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages
-- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic
-- see documentation of PLURAL in your language at [[mw:Help:Magic words#Localization 2]]
["cite"] = { -- cite parameters
["title"] = "title",
["author"] = "author",
["date"] = "date",
["pages"] = "pages",
["language"] = "language",
-- cite web parameters
["url"] = "url",
["website"] = "website",
["access-date"] = "access-date",
["archive-url"] = "archive-url",
["archive-date"] = "archive-date",
["publisher"] = "publisher",
["quote"] = "quote",
-- cite journal parameters
["work"] = "work",
["issue"] = "issue",
["issn"] = "issn",
["doi"] = "doi"
},
-- default local wiki settings
["addpencil"] = false, -- adds a pencil icon linked to Wikidata statement, planned to overwrite by Wikidata Bridge
["categorylabels"] = "", -- Category:Pages with Wikidata labels not translated (void for no local category)
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}, -- additional fallback language codes
["suppressids"] = {}, -- list of Qid values to suppress
["qidlabels"] = true -- show labels as Qid if no fallback translation is available
}
local cases = {} -- functions for local grammatical cases defined at subpage /i18n
local required = ... -- variadic arguments from require function
local wiki =
{
langcode = mw.language.getContentLanguage().code,
module_title = required or mw.getCurrentFrame():getTitle()
}
local untranslated -- used in infobox modules: nil or true
local _ -- variable for unused returned values, avoiding globals
-- Module local functions --------------------------------------------
-- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0
local function tableMerge(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n(lang)
local exist, res = pcall(require, wiki.module_title .. "/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
cases = res.cases
end
if lang ~= wiki.langcode then
exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang)
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
tableMerge(cases, res.cases)
end
end
i18n.suppress = {}
for _, id in ipairs(i18n.suppressids) do
i18n.suppress[id] = true
end
end
-- Table of language codes: requested or default and its fallbacks
local function findLang(langcode)
if mw.language.isKnownLanguageTag(langcode or '') == false then
local cframe = mw.getCurrentFrame()
local pframe = cframe:getParent()
langcode = pframe and pframe.args.lang
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:callParserFunction('int', {'lang'})
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
langcode = wiki.langcode
end
end
end
loadI18n(langcode)
local languages = mw.language.getFallbacksFor(langcode)
table.insert(languages, 1, langcode)
table.insert(languages, 2, "mul") -- see [[d:Help:Default values for labels and aliases]]
if langcode == wiki.langcode then
for _, l in ipairs(i18n.addfallback) do
table.insert(languages, l)
end
end
return languages
end
-- Argument is 'set' when it exists (not nil) or when it is not an empty string.
local function isSet(var)
return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == ''))
end
-- Set local case to a label
local function case(localcase, label, ...)
if not isSet(label) then return label end
if type(localcase) == "function" then
return localcase(label)
elseif localcase == "smallcaps" then
return '<span style="font-variant: small-caps;">' .. label .. '</span>'
elseif cases[localcase] then
return cases[localcase](label, ...)
end
return label
end
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if not ret then return end
ret = ret[v]
end
return ret
end
-- get label with an array of fallback languages
-- mw.wikibase.getLabelWithLang uses lang mul as last fallback, not the first one
local function getLabelByLangs(id, languages)
local label, lang
for _, l in ipairs(languages) do
label = mw.wikibase.getLabelByLang(id, l)
if label then
lang = (l == "mul" and languages[1] or l)
break
end
end
return label, lang
end
-- getBestStatements if bestrank=true, else getAllStatements with no deprecated
local function getStatements(entityId, property, bestrank)
local claims = {}
if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end
if bestrank then
claims = mw.wikibase.getBestStatements(entityId, property)
else
local allclaims = mw.wikibase.getAllStatements(entityId, property)
for _, c in ipairs(allclaims) do
if c.rank ~= "deprecated" then
table.insert(claims, c)
end
end
end
return claims
end
-- Is gender femenine? true or false
local function feminineGender(id)
for idn in string.gmatch(id, "Q%d+") do
local claims = mw.wikibase.getBestStatements(idn or mw.wikibase.getEntityIdForCurrentPage(),'P21')
local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"})
if gender_id == nil or not (gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445") then
-- not female, transgender female or female organism
return false
end
end
return true
end
-- Fetch female form of label
local function feminineForm(id, lang)
local feminine_claims = getStatements(id, 'P2521')
for _, feminine_claim in ipairs(feminine_claims) do
if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then
return feminine_claim.mainsnak.datavalue.value.text
end
end
end
-- Add an icon for no label in requested language
local function addLabelIcon(label_id, lang, uselang, icon)
local ret_lang, ret_icon = '', ''
if icon then
if lang and lang ~= uselang then
ret_lang = " <sup>(" .. lang .. ")</sup>"
end
if label_id and (lang == nil or lang ~= uselang) then
local namespace = ''
if string.sub(label_id, 1, 1) == 'P' then
namespace = 'Property:'
end
ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|class=skin-invert|"
.. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain()
.. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]"
untranslated = true
end
if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then
ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]')
end
end
return ret_lang .. ret_icon
end
-- editicon values: true/false (no=false), right, void defaults to i18n.addpencil
-- labelicon only by parameter
local function setIcons(arg, parg)
local val = arg == nil and parg or arg
local edit_icon, label_icon
if not isSet(val) then
edit_icon, label_icon = i18n.addpencil, true
elseif val == false or val == "false" or val == "no" then
edit_icon, label_icon = false, false
else
edit_icon, label_icon = val, true
end
return edit_icon, label_icon
end
-- Add an icon for editing a statement with requirements for future Wikidata Bridge
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or ''
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>'
.. "[[File:Arbcom ru editing.svg|10px|baseline|"
.. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata')
.. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]"
.. "</span>"
if isSet(i18n.categoryprop) then
ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]"
end
end
return ret
end
-- add edit icon to the last element of a table
local function addEditIconTable(thetable, parameters)
if #thetable == 0 or parameters.editicon == false then
return thetable
end
local last_element = thetable[#thetable]
local the_icon = addEditIcon(parameters)
-- add it before last html closing tags
local tags = ''
local rev_element = string.reverse(last_element)
for tag in string.gmatch(rev_element, '(>%l+/<)') do
if string.match(rev_element, '^' .. tags .. tag) then
tags = tags .. tag
else
break
end
end
local last_tags = string.reverse(tags)
local offset = string.find(last_element, last_tags .. '$')
if offset then
thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags
else
thetable[#thetable] = last_element .. the_icon
end
return thetable
end
-- Escape Lua captures
local function captureEscapes(text)
return mw.ustring.gsub(text, "(%%%d)", "%%%1")
end
-- expandTemplate or callParserFunction
local function expandBraces(text, formatting)
if text == nil or formatting == nil then return text end
-- only expand braces if provided in argument, not included in value as in Q1164668
if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end
if type(text) ~= "string" then
text = tostring(text)
end
for braces in mw.ustring.gmatch(text, "{{(.-)}}") do
local parts = mw.text.split(braces, "|")
local title_part = parts[1]
local parameters = {}
for i = 2, #parts do
local subparts = mw.ustring.find(parts[i], "=")
if subparts then
local param_name = mw.ustring.sub(parts[i], 1, subparts - 1)
local param_value = mw.ustring.sub(parts[i], subparts + 1, -1)
-- reconstruct broken links by parts
if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then
parameters[param_name] = param_value
local part_next = i + 1
while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do
parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next]
part_next = part_next + 1
end
else
parameters[param_name] = param_value
end
elseif not mw.ustring.find(parts[i], "]]", 1, true) then
table.insert(parameters, parts[i])
end
end
local braces_expanded
if mw.ustring.find(title_part, ":")
and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template:
then
braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters}
elseif title_part == "!" then
-- template:! may be deleted locally, now provided by MediaWiki
-- although it works, it raises a Lua internal error
braces_expanded = "|"
else
braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters}
end
braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters
braces_expanded = captureEscapes(braces_expanded)
text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded)
end
return text
end
-- format data type math
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
end
-- format data type musical-notation
local function printDatatypeMusical(data, formatting)
local attr = {}
if formatting == 'sound' then
attr.sound = 1
end
return mw.getCurrentFrame():extensionTag('score', data, attr)
end
-- format data type string
local function printDatatypeString(data, parameters)
if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting)
elseif parameters.case then
return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id))
end
local data_number = string.match(data, "^%d+")
if data_number then -- sort key by initial number and remaining string
local sortkey = string.format("%019d", data_number * 1000)
return data, sortkey .. string.sub(data, #data_number + 1)
end
return data
end
-- format data type tabular-data
local function printDatatypeTabular(data, parameters)
local icon
if parameters.formatting == 'raw' then
icon = "no-icon"
data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data
end
return printDatatypeString(data, parameters), icon
end
-- format data type url
local function printDatatypeUrl(data, parameters)
if parameters.formatting == 'weblink' then
local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/')
local label = string.gsub(label_parts[3], '^www%.', '')
if #label_parts > 3 then
label = label .. '…'
end
return '[' .. data .. ' ' .. label .. ']'
end
return printDatatypeString(data, parameters)
end
-- format data type external-id
local function printDatatypeExternal(data, parameters)
if parameters.formatting == 'externalid' then
local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL
local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"})
if p_link_pattern then
local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data})
return '[' .. p_link .. ' ' .. data .. ']'
end
end
return printDatatypeString(data, parameters)
end
-- format data type commonsMedia and geo-shape
local function printDatatypeMedia(data, parameters)
local icon
if not string.find((parameters.formatting or ''), '$1', 1, true) then
icon = "no-icon"
if not string.find(data, '^Data:') then
data = mw.uri.encode(data, 'PATH') -- encode special characters in filename
end
end
return printDatatypeString(data, parameters), icon
end
-- format data type globe-coordinate
local function printDatatypeCoordinate(data, formatting)
local function globes(globe_id)
-- parameter globe in coordinates accepted by GeoHack
-- see [[w:en:Special:PrefixIndex/Template:GeoTemplate]]
local globes = {['Q3343'] = 'ariel', ['Q3134'] = 'callisto', ['Q596'] = 'ceres',
['Q6604'] = 'charon', ['Q7548'] = 'deimos', ['Q15040'] = 'dione', ['Q2'] = 'earth',
['Q3303'] = 'enceladus', ['Q3143'] = 'europa', ['Q3169'] = 'ganymede',
['Q15037'] = 'hyperion', ['Q17958'] = 'iapetus', ['Q3123'] = 'io',
['Q319'] = 'jupiter', ['Q111'] = 'mars', ['Q308'] = 'mercury', ['Q15034'] = 'mimas',
['Q3352'] = 'miranda', ['Q405'] = 'moon', ['Q3332'] = 'oberon', ['Q7547'] = 'phobos',
['Q17975'] = 'phoebe', ['Q339'] = 'pluto', ['Q15050'] = 'rhea', ['Q15047'] = 'tethys',
['Q2565'] = 'titan', ['Q3322'] = 'titania', ['Q3359'] = 'triton',
['Q3338'] = 'umbriel', ['Q313']='venus', ['Q3030']='vesta'}
return globes[globe_id]
end
local function roundPrecision(num, prec)
if prec == nil or prec <= 0 then return num end
local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001
return math.floor(num / sig + 0.5) * sig
end
local precision = data.precision
local latitude = roundPrecision(data.latitude, precision)
local longitude = roundPrecision(data.longitude, precision)
if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then
local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude})
if string.find(formatting, '$globe', 1, true) then
local myglobe = 'earth'
if isSet(data.globe) then
local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2
myglobe = globes(globenum) or 'earth'
end
ret = mw.ustring.gsub(ret, '$globe', myglobe)
end
return expandBraces(ret, formatting)
elseif formatting == 'latitude' then
return latitude, "no-icon"
elseif formatting == 'longitude' then
return longitude, "no-icon"
elseif formatting == 'dimension' then
return data.dimension, "no-icon"
else --default formatting='globe'
if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then
return 'earth', "no-icon"
else
local globenum = mw.text.split(data.globe, 'entity/')[2]
return globes(globenum) or globenum, "no-icon"
end
end
end
-- Local functions for data value quantity
local function unitSymbol(id, lang) -- get unit symbol or code
local unit_symbol = ''
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true)
end
if unit_symbol == '' then
-- fetch it
local claims = mw.wikibase.getBestStatements(id, 'P5061')
if #claims > 0 then
local langclaims = {}
for _, snak in ipairs(claims) do
local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"})
if snak_language and not langclaims[snak_language] then -- just the first one by language
langclaims[snak_language] = snak.mainsnak.datavalue.value.text
end
end
for _, l in ipairs(lang) do
if langclaims[l] then
return langclaims[l]
end
end
end
end
return unit_symbol
end
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]"
else
suffix = unit_symbol
end
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit label
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]"
end
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
end
end
if suffix ~= '' then
suffix = ' ' .. suffix
end
return suffix
end
local function roundDefPrecision(in_num, factor)
-- rounds out_num with significant figures of in_num (default precision)
local out_num = in_num * factor
if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN
return out_num
end
-- first, count digits after decimal mark, handling cases like '12.345e6'
local exponent, prec
local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
-- significant figures
local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001
local out_bracket = in_bracket * out_num / in_num
out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001
-- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound)
return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket
end
-- format data type quantity
local function printDatatypeQuantity(data, parameters)
local amount = data.amount
amount = mw.ustring.gsub(amount, "%+", "")
local suffix = ""
local conv_amount, conv_suffix
if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then
local unit_id = data.unit
unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1)
if string.sub(unit_id, 1, 1) == "Q" then
suffix = getUnit(amount, unit_id, parameters)
local convert_to
if parameters.convert == "default" or parameters.convert == "default2" then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if exist and units.convert_default and next(units.convert_default) ~= nil then
convert_to = units.convert_default[unit_id]
end
elseif string.sub(parameters.convert or '', 1, 1) == "Q" then
convert_to = parameters.convert
elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then
convert_to = 'Q11574' -- seconds
end
if convert_to and convert_to ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
}
if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount))
conv_amount = math.floor(tonumber(amount_f) + 0.5)
else
local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit
table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit
for _, conv in ipairs(conversions) do
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then
conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount))
break
end
end
end
end
if conv_amount then
conv_suffix = getUnit(conv_amount, convert_to, parameters)
end
elseif parameters.convert == 'M' then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if wiki.langcode == parameters.lang[1]
and exist and units.convert2M and type(units.convert2M) == "function"
then
conv_amount, conv_suffix = units.convert2M(amount)
conv_suffix = (conv_suffix or "").. suffix
elseif tonumber(amount) > 10^8 then
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. mw.text.trim(suffix)
end
end
if conv_amount and parameters.formatting == 'raw' then
amount = conv_amount
suffix = ""
conv_amount = nil
end
end
end
local lang_obj = mw.language.new(parameters.lang[1])
local sortkey = string.format("%019d", tonumber(amount) * 1000)
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == 'duration' then
return lang_obj:formatDuration(sec)
elseif parameters.formatting == 'durationm:s' then
local mm = math.floor(sec / 60)
local ss = sec - (mm * 60)
return string.format("%02d:%02d", mm, ss)
else -- durationhms or durationh:m:s
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals
local duration = ''
for i, v in ipairs(intervals) do
if parameters.formatting == 'durationh:m:s' then
if i == 1 and sec2table[v] then
duration = duration .. sec2table[v] .. ":"
elseif i == 2 then
duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":"
elseif i == 3 then
local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0))
duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str
end
elseif sec2table[v] then
duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "")
end
end
return duration
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id))
elseif parameters.formatting ~= 'raw' then
if parameters.numformat then
amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount)))
else
amount = lang_obj:formatNum(tonumber(amount))
end
end
if conv_amount then
local conv_sortkey = string.format("%019d", conv_amount * 1000)
conv_amount = lang_obj:formatNum(conv_amount)
if parameters.convert == 'default2' then
return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey
else
return conv_amount .. conv_suffix, conv_sortkey
end
elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern
amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount})
end
return amount .. suffix, sortkey
end
-- format data type time
local function printDatatypeTime(data, parameters)
-- Dates and times are stored in ISO 8601 format
local timestamp = data.time
if parameters.formatting == "raw" then
return timestamp, timestamp
end
local post_format
local calendar_add = ""
local precision = data.precision or 11
if string.sub(timestamp, 1, 1) == '-' then
post_format = i18n.datetime["bc"]
elseif string.sub(timestamp, 2, 3) == '00' then
post_format = i18n.datetime["ad"]
elseif precision > 8 then
-- calendar model
local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"}
local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2]
if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian")
or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian")
then
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end
local function formatTime(form, stamp)
local pattern
if type(form) == "function" then
pattern = form(stamp)
else
pattern = form
end
stamp = tostring(stamp)
if mw.ustring.find(pattern, "$1") then
return mw.ustring.gsub(pattern, "$1", stamp)
elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0
stamp = '+' .. string.sub(stamp, 2)
elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number
stamp = string.format("%04d", stamp)
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
end
local function postFormat(t)
if post_format and mw.ustring.find(post_format, "$1") then
return mw.ustring.gsub(post_format, "$1", t)
end
return t
end
local intyear = tonumber(string.match(timestamp, "[+-](%d+)"))
local ret = ""
if precision <= 5 then -- precision is 10000 years or more
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = formatTime(i18n.datetime[precision], y2)
if post_format == i18n.datetime["bc"] then
ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
local ret_number = string.match(ret, "%d+")
if ret_number ~= nil then
ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number)))
end
elseif precision == 6 or precision == 7 then -- millennia or centuries
local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1
ret = formatTime(i18n.datetime[precision], card)
ret = postFormat(ret)
elseif precision == 8 then -- decades
local card = math.floor(math.abs(intyear) / 10) * 10
ret = formatTime(i18n.datetime[8], card)
ret = postFormat(ret)
elseif intyear > 9999 then -- not a valid timestamp
return
elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year
ret = formatTime(i18n.datetime[9], intyear)
ret = postFormat(ret) .. calendar_add
elseif precision == 10 then -- month
ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month
ret = postFormat(ret) .. calendar_add
else -- precision 11, day
ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp)
ret = postFormat(ret) .. calendar_add
end
return ret, timestamp
end
-- format data value wikibase-entityid with data types wikibase-item or wikibase-property
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local entity_page = 'Special:EntityPage/' .. entity_id
local label, lang = getLabelByLangs(entity_id, parameters.lang)
local sitelink = mw.wikibase.getSitelink(entity_id)
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.gender == 'feminineform' then
labelcase = feminineForm(entity_id, lang) or labelcase
end
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
if labelcase == nil and i18n.qidlabels == false then
return
end
local ret1, ret2
if parameter == 'label' then
ret1 = labelcase or entity_id
ret2 = labelcase or entity_id
elseif parameter == 'sitelink' then
ret1 = (sitelink or 'd:' .. entity_page)
ret2 = sitelink or entity_id
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id)
ret1 = expandBraces(ret1, parameter)
ret2 = labelcase or entity_id
else
if parameter == "ucfirst" or parameter == "ucinternallink" then
if labelcase and lang then
labelcase = mw.language.new(lang):ucfirst(labelcase)
end
-- only first of a list, reset formatting for next ones
if parameter == "ucinterlanllink" then
parameters.formatting = 'internallink'
else
parameters.formatting = nil -- default format
end
end
if sitelink then
ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]'
ret2 = labelcase
elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then
ret1 = '[[' .. label .. '|' .. labelcase .. ']]'
ret2 = labelcase
else
ret1 = '[[d:' .. entity_page .. '|' .. (labelcase or entity_id) .. ']]'
ret2 = labelcase or entity_id
end
end
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
-- format data type wikibase-lexeme
local function printDatatypeLexeme(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local lemmas = mw.wikibase.getEntity(entity_id):getLemmas()
if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then
return
end
local ret = '[[d:Special:EntityPage/' .. entity_id .. '|' .. lemmas[1][1] .. ']]'
if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then
ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>"
end
return ret, entity_id
end
-- format data type monolingualtext
local function printDatatypeMonolingual(data, parameters)
-- data fields: language [string], text [string]
local valid_lang = {[parameters.lang[1]] = true, ["mul"] = true}
if parameters.list == "lang" and not valid_lang[data["language"]] then
return
elseif parameters.list == "notlang" and valid_lang[data["language"]] then
return
elseif parameters.formatting == "language" or parameters.formatting == "text" then
return data[parameters.formatting]
end
local result = data["text"]
valid_lang = {[wiki.langcode] = true, ["mul"] = true}
if not valid_lang[data["language"]] then
result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]})
end
if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then
-- output format defined with $text, $language
result = mw.ustring.gsub(parameters.formatting, '$text', result)
result = mw.ustring.gsub(result, '$language', data["language"])
end
return result
end
local function getSnakValue(snak, parameters)
parameters.editbridge = false
if snak.snaktype == 'value' then -- see Special:ListDatatypes
-- data value string
if snak.datatype == "string" then
parameters.editbridge = true -- Wikidata Bridge currently only for string values
return printDatatypeString(snak.datavalue.value, parameters)
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "tabular-data" then
return printDatatypeTabular(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
elseif snak.datatype == "external-id" then
return printDatatypeExternal(snak.datavalue.value, parameters)
elseif snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- data types other than string value
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
if i18n.suppress[snak.datavalue.value.id] then
return
end
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'wikibase-lexeme' then
return printDatatypeLexeme(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
elseif snak.datatype == "globe-coordinate" then
return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting)
elseif snak.datatype == "quantity" then
return printDatatypeQuantity(snak.datavalue.value, parameters)
elseif snak.datatype == "time" then
return printDatatypeTime(snak.datavalue.value, parameters)
end
elseif snak.snaktype == 'novalue' then
if parameters.formatting == 'raw' or parameters.shownovalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw' or parameters.showsomevalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
return mw.wikibase.renderSnak(snak)
end
local function printError(key)
return '<span class="error">' .. i18n.errors[key] .. '</span>'
end
local function getQualifierSnak(claim, qualifierId, parameters)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then
if qualifier[1].datatype == "monolingualtext" then
-- iterate over monolingualtext qualifiers to get languages
local qual_lang, qual_mul
for idx in pairs(qualifier) do
qual_lang = getSnak(qualifier[idx], {"datavalue", "value", "language"})
if qual_lang == parameters.lang[1] then
return qualifier[idx] -- return local language if found
elseif qual_lang == "mul" then
qual_mul = qualifier[idx]
end
end
return qual_mul -- else return multilingual
elseif parameters.list then
return qualifier
else
return qualifier[1]
end
end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameters)
local snak, error = getQualifierSnak(claim, qualifierId, parameters)
if not snak then
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.listmax)
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
if maxvals and maxvals == #result then break end
end
return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1]
else -- a property or a qualifier
return getSnakValue(snak, parameters)
end
end
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local value, sortkey, valueraw = {}, {}, {}
local parent_raw, value_text
if qids[1] == parameters.property then
parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
for idx, p_qid in ipairs(parent_qids) do
local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2])
if parent_claims[1] then
value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters)
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
if value[1] then
value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction)
end
return value_text, sortkey[1], valueraw[1]
end
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not (parameters.references or parameters.onlysourced) then
return '', false
end
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
local notproperref = {
["P143"] = true, -- imported from
["P3452"] = true, -- inferred from
["P887"] = true, -- based on heuristic
["P4656"] = true -- Wikimedia import URL
}
local result = {}
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
local refs = {}
local validref = true
local ref_id
-- traverse through all parts of the current reference
for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do
for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do
if notproperref[snakkey] then -- not a proper reference
validref = false
break
end
end
if validref then
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
if snakval[snakidx].datatype == 'external-id' then
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '')
else
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '')
end
end
refs[snakkey] = refparts
refparts = nil
if snakkey == "P248" then -- stated in
ref_id = getSnak(snakval, {1, "datavalue", "value", "id"})
end
end
end
-- fill missing values with parent item
if ref_id then
local function refParent(qid, pid, formatting)
local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"})
return snak and getSnakValue(snak, {formatting=formatting, lang=lang})
end
refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author
refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work
refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher
refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date
refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in
refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s)
refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue
refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN
refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI
end
-- get title of local templates for citing references
local template_web = mw.wikibase.getSitelink('Q5637226') or ""
template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front
local template_journal = mw.wikibase.getSitelink('Q5624899') or ""
template_journal = mw.text.split(template_journal, ":")[2]
local citeParams = {}
if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then
-- if both "reference URL" and "title" (or "stated in") are present, then use cite web template
citeParams[i18n['cite']['url']] = refs['P854']
if refs['P248'] and refs['P1476'] == nil then
citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]")
else
citeParams[i18n['cite']['title']] = refs['P1476']
citeParams[i18n['cite']['website']] = refs['P248']
end
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['publisher']] = refs['P123']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['access-date']] = refs['P813']
citeParams[i18n['cite']['archive-url']] = refs['P1065']
citeParams[i18n['cite']['archive-date']] = refs['P2960']
citeParams[i18n['cite']['quote']] = refs['P1683']
refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams}
elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then
-- if both "published in" and "title" (or "stated in") are present, then use cite journal template
citeParams[i18n['cite']['work']] = refs['P1433']
citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248']
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['issue']] = refs['P433']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['issn']] = refs['P236']
citeParams[i18n['cite']['doi']] = refs['P356']
refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams}
elseif validref then
-- raw ouput
local snaksorder = claim.references[ref]["snaks-order"]
local function indexed(a)
for _, b in ipairs(snaksorder) do
if b == a then return true end
end
return false
end
for k, _ in pairs(refs or {}) do
if not indexed(k) then
table.insert(snaksorder, k)
end
end
local italics = "''"
local ref_label
for _, k in ipairs(snaksorder) do
if refs[k] then
refparts = refparts and refparts .. " " or ""
ref_label = case('infoboxlabel', getLabelByLangs(k, lang) or '')
refparts = refparts .. mw.ustring.gsub(ref_label, "^%l", mw.ustring.upper) .. ": "
refparts = refparts .. italics .. refs[k] .. italics .. "."
italics = ""
end
end
end
if refparts then
local ref_name = claim.references[ref].hash
result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name})
if maxrefs and maxrefs == #result then break end
end
end
if #result > 0 then
if parameters.references then
if isSet(i18n.categoryref) then
result[#result + 1] = "[[" ..i18n.categoryref .. "]]"
end
return table.concat(result), true
else
return '', true
end
end
return '', false
end
-- Set lists of filtered values
local function setFilterLists(num_qual, args)
local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}}
for i = 0, num_qual do
for k, _ in pairs(lists) do
if isSet(args[k .. i]) then
lists[k][tostring(i)] = {}
local pattern = 'Q%d+'
if string.sub(args[k .. i], 1, 1) ~= 'Q' then
pattern = '[^%p%s]+'
end
for q in string.gmatch(args[k .. i], pattern) do
lists[k][tostring(i)][q] = true
end
end
end
end
return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue']
end
local function tableParameters(args, parameters, column)
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
column_params.case = args["case" .. column]
end
return column_params
end
local function getEntityId(args, pargs, unnamed)
pargs = pargs or {}
local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil)
if not isSet(id) then
id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil)
end
if isSet(id) then
if string.find(id, ":") then -- remove prefix as Property:Pid
id = mw.text.split(id, ":")[2]
end
else
id = mw.wikibase.getEntityIdForCurrentPage()
end
return id
end
local function getArg(value, default, aliases)
if type(value) == 'boolean' then return value
elseif value == "false" or value == "no" then return false
elseif value == "true" or value == "yes" then return true
elseif value and aliases and aliases[value] then return aliases[value]
elseif isSet(value) then return value
elseif default then return default
else return nil
end
end
-- Main function claim ---------------------------------------------
-- on debug console use: =p.claim{item="Q...", property="P...", ...}
function p.claim(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local is_sandbox = isSet(pargs.sandbox)
if not required and is_sandbox then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame)
end
--If a value is already set, use it
if isSet(args.value) then
if args.value == 'NONE' then
return
else
return args.value
end
end
-- arguments
local parameters = {}
parameters.id = getEntityId(args, pargs)
if parameters.id == nil then return end
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))
local i = 2
while isSet(args["qualifier" .. i]) do
qualifierId[i] = string.upper(args["qualifier" .. i])
i = i + 1
end
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.numformat = getArg(args.numformat)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.listmax = args.listmax
parameters.listrank = getArg(args.listrank)
if type(parameters.list) == "number" then -- backwards compatibility
parameters.listmax = parameters.listmax or parameters.list
parameters.list = true
elseif parameters.list == "bestrank" then
parameters.listrank = parameters.listrank or "bestrank"
parameters.list = true
end
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.showsomevalue = getArg(args.showsomevalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator = getArg(args.qseparator, parameters.separator)
parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction)
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references = getArg(args.references, false)
parameters.onlysourced = getArg(args.onlysourced, false)
local showerrors = args.showerrors
local default = args.default
if default then showerrors = nil end
parameters.lang = findLang(args.lang)
if parameters.formatting == "raw" then
parameters.editicon, parameters.labelicon = false, false
else
parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand
end
-- fetch property
local claims = {}
local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang'
for p in string.gmatch(parameters.property, 'P[%d/P]+') do -- P123 or P45/P67
if string.find(p, ".+/.+") then
local props = mw.text.split(p, "/")
local claims_child = {}
claims_child = getStatements(parameters.id, props[1], bestrank)
if #claims_child > 0 then
local parent_id, _, _ = getValueOfClaim(claims_child[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
if string.sub(parent_id or '', 1, 1) == "Q" then
claims = getStatements(parent_id, props[2], bestrank)
if #claims > 0 then
parameters.property = props[1]
break
end
end
end
else
claims = getStatements(parameters.id, p, bestrank)
if #claims > 0 then
parameters.property = p
break
end
end
end
if #claims == 0 then
local ret = showerrors and printError("property-not-found") or default
return ret, args.query == 'num' and 0 or ''
end
-- defaults for table
local preformat, postformat = "", ""
local whitelisted = false
local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {}
if parameters.formatting == "table" then
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain())
parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator)
if not rowformat then
rowformat = "$0 ($1"
i = 2
while qualifierId[i] do
rowformat = rowformat .. ", $" .. i
i = i + 1
end
rowformat = rowformat .. ")"
elseif mw.ustring.find(rowformat, "^[*#]") then
parameters.separator = "</li><li>"
parameters.conjunction = "</li><li>"
if mw.ustring.match(rowformat, "^[*#]") == "*" then
preformat = "<ul><li>"
postformat = "</li></ul>"
else
preformat = "<ol><li>"
postformat = "</li></ol>"
end
rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "")
end
-- set lists of filtered values
whitelist, blacklist, ignorevalue, selectvalue = setFilterLists(#qualifierId, args)
local next = next
if next(whitelist) ~= nil then whitelisted = true end
end
-- set feminine case if gender is requested
local itemgender = args.itemgender
local idgender
if itemgender then
if string.match(itemgender, "^P%d+$") then
local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"})
if snak_id then
idgender = snak_id
end
elseif string.match(itemgender, "^Q%d+$") then
idgender = itemgender
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
gender_requested = true
elseif parameters.formatting == "table" then
for i=0, #qualifierId do
if args["case" .. i] and args["case" .. i] == "gender" then
gender_requested = true
break
end
end
end
if gender_requested then
if feminineGender(idgender or parameters.id) then
parameters.gender = "feminineform"
end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result, result2, result_query
local error
if parameters.list or parameters.formatting == "table" then
-- convert LF to line feed, <br /> may not work on some cases
parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator
parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction
-- i18n separators
parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()
parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain())
-- iterate over all elements and return their value (if existing)
local value, valueq
local sortkey, sortkeyq
local values = {}
local sortkeys = {}
local refs = {}
local rowlist = {} -- rows to list with whitelist or blacklist
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
local reference = {}
if not whitelisted then rowlist[idx] = true end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0")
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
if whitelist["0"] or blacklist["0"] then
local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang})
if whitelist["0"] and whitelist["0"][valueraw or ""] then
rowlist[#values] = true
elseif blacklist["0"] and blacklist["0"][valueraw or ""] then
rowlist[#values] = false
end
end
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j)
local valueq, sortkeyq, valueraw
if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw
valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params)
else
for q in mw.text.gsplit(qual, '%s*OR%s*') do
if string.find(q, ".+/.+") then
valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params)
elseif string.find(q, "^/.+") then
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
-- only first value of a property as alternative to a qualifier
-- multiple values may not be related to a given raw of the table
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
else
valueq, sortkeyq, _ = getValueOfClaim(claim, q, params)
end
if valueq then
qual = q
break
end
end
end
values[#values]["col" .. j] = valueq
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang, ["list"]=params.list})
if valueq then
if whitelist[j] then
for k, v in pairs(whitelist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = true
end
end
elseif blacklist[j] then
for k, v in pairs(blacklist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = false
end
end
elseif ignorevalue[j] then
for k, v in pairs(ignorevalue[j]) do
if v and string.find(valueq, k, 1, true) then
values[#values]["col" .. j] = nil
end
end
elseif selectvalue[j] then
local selected
for k, v in pairs(selectvalue[j]) do
if v and string.find(valueq, k, 1, true) then
selected = true
end
end
if selected == nil then
values[#values]["col" .. j] = nil
end
end
end
end
end
end
else
value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters)
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
end
if not value and showerrors then value = error end
if value then
if (parameters.references or parameters.onlysourced) and claim.references then
reference = claim.references
end
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
sortkeys[#sortkeys]["col0"] = sortkey or value
end
end
-- sort and format results
sortindices = {}
for idx in pairs(values) do
sortindices[#sortindices + 1] = idx
end
if sorting_col then
local sorting_table = mw.text.split(sorting_col, '%D+')
local comparator = function(a, b)
local valuea, valueb
local i = 1
while valuea == valueb and i <= #sorting_table do
valuea = sortkeys[a]["col" .. sorting_table[i]] or ''
valueb = sortkeys[b]["col" .. sorting_table[i]] or ''
i = i + 1
end
if sorting_up then
return valueb > valuea
end
return valueb < valuea
end
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.listmax)
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters)
value = valuerow["col0"]
if parameters.formatting == "table" then
if not rowlist[sortindices[idx]] then
value = nil
else
local rowformatting = rowformat .. "$" -- fake end character added for easy gsub
value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value})
value = mw.ustring.gsub(value, "$R0", reference) -- add reference
for i, _ in ipairs(qualifierId) do
local valueq = valuerow["col" .. i]
if args["rowsubformat" .. i] and isSet(valueq) then
-- add fake end character $
-- gsub $i not followed by a number so $1 doesn't match $10, $11...
-- remove fake end character
valueq = captureEscapes(valueq)
valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1")
valueq = string.sub(valueq, 1, -2)
rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1")
end
valueq = valueq and captureEscapes(valueq) or ''
value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1")
end
value = string.sub(value, 1, -2) -- remove fake end character
value = expandBraces(value, rowformatting)
end
elseif value then
value = expandBraces(value, parameters.formatting)
value = value .. reference
end
if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
break
end
end
end
if args.query == 'num' then
result_query = #result
end
if #result > 0 then
if parameters.formatting == 'table' then
result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element
end
result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat
else
result = ''
end
else
-- return first element
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result then
local ref, valid_ref = getReferences(claim, parameters)
if parameters.onlysourced and valid_ref == false then
result = nil
else
result = result .. ref
end
end
if args.query == 'num' then result_query = result and 1 or 0 end
end
if isSet(result) then
if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then
-- add edit icon, except table added previously and except explicit no-icon internal flag
result = result .. addEditIcon(parameters)
end
else
if showerrors then result = error else result = default end
end
if args.query == 'untranslated' and required and not is_sandbox then
result_query = untranslated
end
return result, result_query or ''
end
-- Local functions for getParentValues -----------------------
local function uc_first(word)
if word == nil then return end
return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2)
end
local function getPropertyValue(id, property, parameter, langs, labelicon, case)
local snaks = mw.wikibase.getBestStatements(id, property)
local mysnak = getSnak(snaks, {1, "mainsnak"})
if mysnak == nil then
return
end
local entity_id
local result = '-' -- default for 'no value'
if mysnak.datavalue then
entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id'])
result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case})
end
return entity_id, result
end
local function getParentObjects(id,
prop_format,
label_format,
languages,
propertySupString,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
grammatical_case,
include_self)
local propertySups = mw.text.split(propertySupString, '[^P%d]')
local maxloop = 10
if upto_number then
maxloop = upto_number
elseif next(upto_label) or next(upto_value) then
maxloop = 50
end
local labels_filter = next(label_show)
local result = {}
local id_value = id
for iter = 1, maxloop do
local link, label, labelwicon, linktext, id_label
for _, propertySup in pairs(propertySups) do
local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case)
if _id_value and _link then id_value = _id_value; link = _link break end
end
if not id_value or not link then break end
if propertyLink then
_, linktext = getPropertyValue(id_value, propertyLink, "label", languages)
if linktext then
link = link .. " (" .. linktext .. ")"
end
end
id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel")
if labelicon0 then
_, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
else
labelwicon = label
end
if labels_filter == nil or (label_show[id_label] or label_show[label]) then
result[#result + 1] = {labelwicon, link}
label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found
end
if upto_label[id_label] or upto_label[label] or upto_value[id_value] then
break
end
end
if last_only then
result = {result[#result]}
end
if include_self then
local label_self, link_self
_, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
link_self, _ = getLabelByLangs(id, languages)
table.insert(result, 1, {label_self, link_self})
end
return result
end
local function parentObjectsToString(result,
rowformat,
cascade,
sorting)
local ret = {}
local first = 1
local last = #result
local iter = 1
if sorting == "-1" then first = #result; last = 1; iter = -1 end
for i = first, last, iter do
local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]})
ret[#ret + 1] = expandBraces(rowtext, rowformat)
end
if cascade then
local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left"
local suffix = ""
for i = 1, #ret do
ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i]
suffix = suffix .. '</li></ul>'
end
ret[#ret] = ret[#ret] .. suffix
end
return ret
end
-- Returns pairs of parent label and property value fetching a recursive tree
function p.getParentValues(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame)
end
local id = getEntityId(args, pargs)
if id == nil then return end
local languages = findLang(args.lang)
local propertySup = getArg(args.property, "P131") --administrative entity
local propertyLabel = getArg(args.label, "P31") --instance
local propertyLink = getArg(args.valuetext)
local property_format = getArg(args.formatting)
local label_format = getArg(args.labelformat, "label")
local upto_number = getArg(args.upto)
local last_only = getArg(args.last_only, false)
local editicon, labelicon = setIcons(args.editicon, pargs.editicon)
local include_self = getArg(args.include_self, false)
local case = getArg(args.case)
local upto_label = {}
for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do
upto_label[q] = true
end
if type(tonumber(upto_number)) == "number" then
upto_number = tonumber(upto_number)
elseif type(upto_number) == 'string' then
upto_number = nil
require(wiki.module_title .. '/debug').track('upto') -- replace upto by uptolabelid
end
local upto_value = {}
for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do
upto_value[q] = true
end
local label_show = {}
for q in string.gmatch(args.showlabelid or '', 'Q%d+') do
label_show[q] = true
end
for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do
if v ~= '' then
label_show[uc_first(v)] = true
require(wiki.module_title .. '/debug').track('labelshow') -- replace labelshow by showlabelid
end
end
local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end
local labelicon0, labelicon1 = labelicon, labelicon
if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then
labelicon0 = false
end
local result = getParentObjects(id,
property_format,
label_format,
languages,
propertySup,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
case,
include_self)
if #result == 0 then return end
local separator = args.separator; if not isSet(separator) then separator = "<br />" end
local sorting = args.sorting; if sorting == "" then sorting = nil end
local cascade = (args.cascade == "true" or args.cascade == "yes")
local ret = parentObjectsToString(result,
rowformat,
cascade,
sorting)
ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages})
return mw.text.listToText(ret, separator, separator)
end
-- Link with a parent label --------------------
function p.linkWithParentLabel(frame)
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame)
end
local args = {}
if frame.args then
for k, v in pairs(frame.args) do -- metatable
args[k] = v
end
else
args = frame -- via require
end
if isSet(args.value) then
return args.value
end
-- get id value of property/qualifier
local largs = mw.clone(args)
largs.list = tonumber(args.list) and args.list or true
largs.formatting = "raw"
largs.separator = "/·/"
largs.editicon = false
local items_list, _ = p.claim(largs)
if not isSet(items_list) then return end
local items_table = mw.text.split(items_list, "/·/", true)
-- get internal link of property/qualifier
if isSet(args.formatting) then
largs.formatting = nil -- default link if defined with any value
else
largs.formatting = "internallink"
end
local link_list, _ = p.claim(largs)
local link_table = mw.text.split(link_list, "/·/", true)
-- get label of parent property
local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"})
if parent_claim == 'monolingualtext' then
largs.formatting = nil
largs.list = 'lang'
else
largs.formatting = "label"
largs.list = false
end
largs.property = args.parent
largs.qualifier = nil
for i, v in ipairs(items_table) do
largs.item = v
local link_label, _ = p.claim(largs)
if isSet(link_label) then
link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
args.editicon, _ = setIcons(args.editicon, pargs.editicon)
args.id = getEntityId(args, pargs)
args.lang = findLang(args.lang)
return mw.text.listToText(link_table) .. addEditIcon(args)
end
-- Calculate number of years old ----------------------------
function p.yearsOld(frame)
if not required and frame.args and isSet(frame:getParent().args.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame)
end
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return end
local lang = mw.language.new('en')
local function getBestDate(id, prop)
local mainsnak = getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak"})
if mainsnak and mainsnak.snaktype then
if mainsnak.snaktype == "somevalue" then
return {time = nil, precision = 0}
elseif mainsnak.snaktype == "value" then
return getSnak(mainsnak, {"datavalue", "value"})
end
end
return {time = nil, precision = nil}
end
local birth = getBestDate(id, 'P569')
if birth.time == nil or birth.precision < 8 then
return
end
local death = getBestDate(id, 'P570')
if death.precision and death.precision < 8 then -- includes somevalue
return
elseif death.time == nil then
death = {time = lang:formatDate('c'), precision = 11} -- current date
end
local dates = {}
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "-(%d%d)-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "-(%d%d)-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
for i, d in ipairs(dates) do
if d.precision == 10 then -- month
d.min.day = 1
local timestamp = string.format("%04d", tostring(math.abs(d.max.year)))
.. string.format("%02d", tostring(d.max.month))
.. "01"
d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day"))
elseif d.precision < 10 then -- year or decade
d.min.day = 1
d.min.month = 1
d.max.day = 31
d.max.month = 12
if d.precision == 8 then -- decade
d.max.year = d.max.year + 9
end
end
end
local function age(d1, d2)
local years = d2.year - d1.year
if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then
years = years - 1
end
if d2.year > 0 and d1.year < 0 then
years = years - 1 -- no year 0
end
return years
end
local old_min = age(dates[1].max, dates[2].min)
local old_max = age(dates[1].min, dates[2].max)
if old_max > 200 then
require(wiki.module_title .. '/debug').track('200yo')
end
local old, old_expr
if old_min == 0 and old_max == 0 then
old = "< 1"
old_max = 1 -- expression in singular
elseif old_min == old_max then
old = old_min
else
old = old_min .. "/" .. old_max
end
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo
local yo_pl = {}
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"]
end
if not isSet(yo_pl[2]) then
local yo_label, _ = getLabelByLangs('Q24564698', langs)
yo_pl = {yo_label, yo_label}
end
yo = mw.language.new(langs[1]):plural(old_max, yo_pl)
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
else
old_expr = old .. ' ' .. yo
end
elseif args.formatting then
old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting)
else
old_expr = old
end
return old_expr
end
-- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked.
function p.getLabel(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame)
end
local id = getEntityId(args, pargs, 1)
if id == nil then return end
local languages = findLang(args.lang)
local labelicon = false
if mw.wikibase.isValidEntityId(id) then
_, labelicon = setIcons(args.editicon, pargs.editicon)
end
local label_icon = ''
local label, lang
if args.label then
label = args.label
else
-- exceptions or labels fixed
local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1]))
if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then
label = labels.infoboxLabelsFromId[id]
end
if label == nil then
label, lang = getLabelByLangs(id, languages)
if label then
if isSet(args.itemgender) then
if feminineGender(args.itemgender) then
label = feminineForm(id, lang) or label
end
local _, items_g = string.gsub(args.itemgender, "Q%d+", "")
if not isSet(args.case) and items_g > 1 then
args.case = "plural"
end
end
label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize
if args.case then
label = case(args.case, label, lang)
end
end
label_icon = addLabelIcon(id, lang, languages[1], labelicon)
end
end
local linked = args.linked
local ret2 = required and untranslated or ''
if isSet(linked) and linked ~= "no" then
local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id)
return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2
else
return (label or id) .. label_icon, ret2
end
end
function p.sitelinks(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
-- arguments
local param = {}
param.id = getEntityId(args, pargs)
if param.id == nil then return end
param.project = getArg(args.project)
param.site = getArg(args.site)
param.sitelang = getArg(args.sitelang)
param.show = getArg(args.formatting, '[[$w:$l:$t|$s:$t]] $i')
param.sep = getArg(args.separator, ', ')
-- fetch sitelinks
local sitelinks_obj = mw.wikibase.getEntity(param.id).sitelinks
local slinks = {} -- do some clean up (commonswiki > commons) and add some data
local iw = {['wikipedia'] = 'w', ['wikibooks'] = 'b', ['wikinews'] = 'n', ['wikiquote'] = 'q',
['wikisource'] = 's', ['wikiversity'] = 'v', ['wikivoyage'] = 'voy', ['wiktionary'] = 'wikt', ['commons'] = 'c',
['meta'] = 'm', ['mediawiki'] = 'mw', ['species'] = 'species', ['wikidata'] = 'd', ['wikifunctions'] = 'f'}
for slink, sdata in pairs(sitelinks_obj) do
-- langcode + wiki, wikibooks, wikinews, wikiquote, wikisource, wikiversity, wikivoyage, wiktionary
local s_lang = string.match(slink, '(%l+)wik[it]')
local s_project = string.match(slink, 'wik[it]%l*')
if slink == 'commonswiki' or slink == 'metawiki' or slink == 'mediawikiwiki'
or slink == 'specieswiki' or slink == 'wikidatawiki' or slink == 'wikifunctionswiki'
then
s_project = string.sub(slink, 1, -5) -- remove -wiki
slinks[s_project] = {['lang'] = 'und', ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiki' then -- restore project full name
slinks[slink] = {['lang'] = s_lang, ['project'] = 'wikipedia', ['iw'] = 'w', ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiktionary' then -- use short site name
s_project = string.sub(slink, 1, -7)
slinks[s_project] = {['lang'] = s_lang, ['project'] = 'wiktionary', ['iw'] = 'wikt', ['title'] = sdata.title, ['badges'] = sdata.badges}
else
slinks[slink] = {['lang'] = s_lang, ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
end
end
-- select requested project, site, sitelang
local slinks_req = {}
if not (param.project or param.site or param.sitelang) then
slinks_req = slinks
else
for pr in string.gmatch(param.project or '', '%l+') do -- lowercase letters, skip separators
for sl, sd in pairs(slinks) do
if sd.project == pr then
slinks_req[sl] = sd
end
end
end
for s in string.gmatch(param.site or '', '%l+') do
for sl, sd in pairs(slinks) do
if sl == s then
slinks_req[sl] = sd
end
end
end
for l in string.gmatch(param.sitelang or '', '%l+') do
for sl, sd in pairs(slinks) do
if sd.lang == l then
slinks_req[sl] = sd
end
end
end
end
-- sort table
local sites_sorted = {}
for sitex in pairs(slinks_req) do
sites_sorted[#sites_sorted + 1] = sitex
end
local sort_project_lang = function(a, b)
local key_a = slinks_req[a].project .. slinks_req[a].lang
local key_b = slinks_req[b].project .. slinks_req[b].lang
return key_a < key_b
end
table.sort(sites_sorted, sort_project_lang)
-- format output
local showtext = {}
local shownum, showbnum = 0, 0
for _, sl in ipairs(sites_sorted) do
local sd = slinks_req[sl]
local show = param.show -- default '[[$w:$l:$t|$s:$t]] $i' iw:lang:title, site:title icon, also $p project
show = string.gsub(show, '$w', sd.iw)
show = string.gsub(show, '$p', sd.project)
if sd.lang == 'und' then
show = string.gsub(show, '$l:?', '')
else
show = string.gsub(show, '$l', sd.lang)
end
show = string.gsub(show, '$t', sd.title)
show = string.gsub(show, '$s', sl)
if next(sd.badges) then
show = string.gsub(show, '$i', '[[File:Article de qualité.svg|15x15px]]')
showbnum = showbnum + 1
else
show = string.gsub(show, ' ?$i', '')
end
if show ~= param.show then
table.insert(showtext, show)
end
shownum = shownum + 1
end
local output
if string.find(param.show, '$[nb]') then
output = string.gsub(param.show, '$n', shownum) -- number of sites
output = string.gsub(output, '$b', showbnum) -- number of badges
else
output = table.concat(showtext, param.sep)
end
return output
end
-- Utilities -----------------------------
-- See also module ../debug.
-- Copied from Module:Wikibase
function p.getSiteLink(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs, 1)
if id == nil then return end
return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or ''))
end
-- Helper function for the default language code used
function p.lang(frame)
local lang = frame and frame.args[1] -- nil via require
return findLang(lang)[1]
end
-- Number of statements
function p.numStatements(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return 0 end
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) then
local largs = {}
for k, v in pairs(pargs) do
largs[k] = v
end
for k, v in pairs(args) do
largs[k] = v
end
largs.query = 'num'
_, num = p.claim(largs)
return num
elseif args[2] then -- qualifier
local qual = mw.text.trim(args[2])
local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'}
if values then
num = mw.text.split(values, '/·/')
end
else
num = mw.wikibase.getBestStatements(id, prop)
end
return #num
end
-- Returns true if property datavalue is found excluding novalue/somevalue
function p.validProperty(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local item = getEntityId(args, pargs)
if item == nil then return end
local property = mw.text.trim(args[1])
local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"})
return prop_data and true or nil
end
function p.editAtWikidata(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local value = isSet(args[1])
if value then return end
local param = {}
param.id = getEntityId(args, pargs)
param.property = args.property
param.lang = findLang(args.lang)
param.editicon, _ = setIcons(args.editicon)
return addEditIcon(param)
end
function p.formatNum(frame)
local val = frame.args[1]
if not val or mw.text.trim(val) == "" then
return ""
end
val = mw.text.trim(val)
-- Clean out all Wikidata junk (references, commas, plus signs, percentage signs)
local clean_val = string.gsub(val, "%[.-%]", "")
clean_val = string.gsub(clean_val, "^%+", "")
clean_val = string.gsub(clean_val, "[,%s ]", "")
clean_val = string.gsub(clean_val, "[%%%٪]", "")
local num = tonumber(clean_val)
-- If it's pure text, return the text
if not num then
return val
end
-- Format in Kashmiri
local lang_arg = frame.args[2]
local lang_code = 'ks'
if lang_arg and mw.text.trim(lang_arg) ~= "" then
local lang = findLang(mw.text.trim(lang_arg))
if lang and lang[1] then
lang_code = lang[1]
end
end
return mw.language.new(lang_code):formatNum(num)
end
return p
6s03ngukogzjzuutvjsmqurutgh0s2g
142927
142925
2026-06-26T09:36:57Z
آیات محراج
11062
142927
Scribunto
text/plain
-- version 20260211 from master @cawiki
-- changes from previous version:
-- new function sitelinks
local p = {}
-- Initialization of variables --------------------
local i18n = { -- internationalisation at subpage /i18n
["errors"] = {
["property-not-found"] = "Property not found.",
["qualifier-not-found"] = "Qualifier not found.",
},
["datetime"] = {
-- $1 is a placeholder for the actual number
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = "$1 BCE", -- how print negative years
["ad"] = "$1", -- how print 1st century AD dates
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100000 years", -- precision: hundred thousand years; thousand separators added afterwards
[5] = "$10000 years", -- precision: ten thousand years; thousand separators added afterwards
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs
},
["years-old"] = {"", ""}, -- year(s) old, as in magic word {PLURAL:$1|singular|plural}
-- two values for most languages, up to six values for some languages, examples:
-- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages
-- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic
-- see documentation of PLURAL in your language at [[mw:Help:Magic words#Localization 2]]
["cite"] = { -- cite parameters
["title"] = "title",
["author"] = "author",
["date"] = "date",
["pages"] = "pages",
["language"] = "language",
-- cite web parameters
["url"] = "url",
["website"] = "website",
["access-date"] = "access-date",
["archive-url"] = "archive-url",
["archive-date"] = "archive-date",
["publisher"] = "publisher",
["quote"] = "quote",
-- cite journal parameters
["work"] = "work",
["issue"] = "issue",
["issn"] = "issn",
["doi"] = "doi"
},
-- default local wiki settings
["addpencil"] = false, -- adds a pencil icon linked to Wikidata statement, planned to overwrite by Wikidata Bridge
["categorylabels"] = "", -- Category:Pages with Wikidata labels not translated (void for no local category)
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}, -- additional fallback language codes
["suppressids"] = {}, -- list of Qid values to suppress
["qidlabels"] = true -- show labels as Qid if no fallback translation is available
}
local cases = {} -- functions for local grammatical cases defined at subpage /i18n
local required = ... -- variadic arguments from require function
local wiki =
{
langcode = mw.language.getContentLanguage().code,
module_title = required or mw.getCurrentFrame():getTitle()
}
local untranslated -- used in infobox modules: nil or true
local _ -- variable for unused returned values, avoiding globals
-- Module local functions --------------------------------------------
-- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0
local function tableMerge(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n(lang)
local exist, res = pcall(require, wiki.module_title .. "/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
cases = res.cases
end
if lang ~= wiki.langcode then
exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang)
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
tableMerge(cases, res.cases)
end
end
i18n.suppress = {}
for _, id in ipairs(i18n.suppressids) do
i18n.suppress[id] = true
end
end
-- Table of language codes: requested or default and its fallbacks
local function findLang(langcode)
if mw.language.isKnownLanguageTag(langcode or '') == false then
local cframe = mw.getCurrentFrame()
local pframe = cframe:getParent()
langcode = pframe and pframe.args.lang
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:callParserFunction('int', {'lang'})
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
langcode = wiki.langcode
end
end
end
loadI18n(langcode)
local languages = mw.language.getFallbacksFor(langcode)
table.insert(languages, 1, langcode)
table.insert(languages, 2, "mul") -- see [[d:Help:Default values for labels and aliases]]
if langcode == wiki.langcode then
for _, l in ipairs(i18n.addfallback) do
table.insert(languages, l)
end
end
return languages
end
-- Argument is 'set' when it exists (not nil) or when it is not an empty string.
local function isSet(var)
return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == ''))
end
-- Set local case to a label
local function case(localcase, label, ...)
if not isSet(label) then return label end
if type(localcase) == "function" then
return localcase(label)
elseif localcase == "smallcaps" then
return '<span style="font-variant: small-caps;">' .. label .. '</span>'
elseif cases[localcase] then
return cases[localcase](label, ...)
end
return label
end
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if not ret then return end
ret = ret[v]
end
return ret
end
-- get label with an array of fallback languages
-- mw.wikibase.getLabelWithLang uses lang mul as last fallback, not the first one
local function getLabelByLangs(id, languages)
local label, lang
for _, l in ipairs(languages) do
label = mw.wikibase.getLabelByLang(id, l)
if label then
lang = (l == "mul" and languages[1] or l)
break
end
end
return label, lang
end
-- getBestStatements if bestrank=true, else getAllStatements with no deprecated
local function getStatements(entityId, property, bestrank)
local claims = {}
if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end
if bestrank then
claims = mw.wikibase.getBestStatements(entityId, property)
else
local allclaims = mw.wikibase.getAllStatements(entityId, property)
for _, c in ipairs(allclaims) do
if c.rank ~= "deprecated" then
table.insert(claims, c)
end
end
end
return claims
end
-- Is gender femenine? true or false
local function feminineGender(id)
for idn in string.gmatch(id, "Q%d+") do
local claims = mw.wikibase.getBestStatements(idn or mw.wikibase.getEntityIdForCurrentPage(),'P21')
local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"})
if gender_id == nil or not (gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445") then
-- not female, transgender female or female organism
return false
end
end
return true
end
-- Fetch female form of label
local function feminineForm(id, lang)
local feminine_claims = getStatements(id, 'P2521')
for _, feminine_claim in ipairs(feminine_claims) do
if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then
return feminine_claim.mainsnak.datavalue.value.text
end
end
end
-- Add an icon for no label in requested language
local function addLabelIcon(label_id, lang, uselang, icon)
local ret_lang, ret_icon = '', ''
if icon then
if lang and lang ~= uselang then
ret_lang = " <sup>(" .. lang .. ")</sup>"
end
if label_id and (lang == nil or lang ~= uselang) then
local namespace = ''
if string.sub(label_id, 1, 1) == 'P' then
namespace = 'Property:'
end
ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|class=skin-invert|"
.. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain()
.. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]"
untranslated = true
end
if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then
ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]')
end
end
return ret_lang .. ret_icon
end
-- editicon values: true/false (no=false), right, void defaults to i18n.addpencil
-- labelicon only by parameter
local function setIcons(arg, parg)
local val = arg == nil and parg or arg
local edit_icon, label_icon
if not isSet(val) then
edit_icon, label_icon = i18n.addpencil, true
elseif val == false or val == "false" or val == "no" then
edit_icon, label_icon = false, false
else
edit_icon, label_icon = val, true
end
return edit_icon, label_icon
end
-- Add an icon for editing a statement with requirements for future Wikidata Bridge
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or ''
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>'
.. "[[File:Arbcom ru editing.svg|10px|baseline|"
.. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata')
.. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]"
.. "</span>"
if isSet(i18n.categoryprop) then
ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]"
end
end
return ret
end
-- add edit icon to the last element of a table
local function addEditIconTable(thetable, parameters)
if #thetable == 0 or parameters.editicon == false then
return thetable
end
local last_element = thetable[#thetable]
local the_icon = addEditIcon(parameters)
-- add it before last html closing tags
local tags = ''
local rev_element = string.reverse(last_element)
for tag in string.gmatch(rev_element, '(>%l+/<)') do
if string.match(rev_element, '^' .. tags .. tag) then
tags = tags .. tag
else
break
end
end
local last_tags = string.reverse(tags)
local offset = string.find(last_element, last_tags .. '$')
if offset then
thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags
else
thetable[#thetable] = last_element .. the_icon
end
return thetable
end
-- Escape Lua captures
local function captureEscapes(text)
return mw.ustring.gsub(text, "(%%%d)", "%%%1")
end
-- expandTemplate or callParserFunction
local function expandBraces(text, formatting)
if text == nil or formatting == nil then return text end
-- only expand braces if provided in argument, not included in value as in Q1164668
if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end
if type(text) ~= "string" then
text = tostring(text)
end
for braces in mw.ustring.gmatch(text, "{{(.-)}}") do
local parts = mw.text.split(braces, "|")
local title_part = parts[1]
local parameters = {}
for i = 2, #parts do
local subparts = mw.ustring.find(parts[i], "=")
if subparts then
local param_name = mw.ustring.sub(parts[i], 1, subparts - 1)
local param_value = mw.ustring.sub(parts[i], subparts + 1, -1)
-- reconstruct broken links by parts
if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then
parameters[param_name] = param_value
local part_next = i + 1
while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do
parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next]
part_next = part_next + 1
end
else
parameters[param_name] = param_value
end
elseif not mw.ustring.find(parts[i], "]]", 1, true) then
table.insert(parameters, parts[i])
end
end
local braces_expanded
if mw.ustring.find(title_part, ":")
and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template:
then
braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters}
elseif title_part == "!" then
-- template:! may be deleted locally, now provided by MediaWiki
-- although it works, it raises a Lua internal error
braces_expanded = "|"
else
braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters}
end
braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters
braces_expanded = captureEscapes(braces_expanded)
text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded)
end
return text
end
-- format data type math
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
end
-- format data type musical-notation
local function printDatatypeMusical(data, formatting)
local attr = {}
if formatting == 'sound' then
attr.sound = 1
end
return mw.getCurrentFrame():extensionTag('score', data, attr)
end
-- format data type string
local function printDatatypeString(data, parameters)
if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting)
elseif parameters.case then
return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id))
end
local data_number = string.match(data, "^%d+")
if data_number then -- sort key by initial number and remaining string
local sortkey = string.format("%019d", data_number * 1000)
return data, sortkey .. string.sub(data, #data_number + 1)
end
return data
end
-- format data type tabular-data
local function printDatatypeTabular(data, parameters)
local icon
if parameters.formatting == 'raw' then
icon = "no-icon"
data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data
end
return printDatatypeString(data, parameters), icon
end
-- format data type url
local function printDatatypeUrl(data, parameters)
if parameters.formatting == 'weblink' then
local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/')
local label = string.gsub(label_parts[3], '^www%.', '')
if #label_parts > 3 then
label = label .. '…'
end
return '[' .. data .. ' ' .. label .. ']'
end
return printDatatypeString(data, parameters)
end
-- format data type external-id
local function printDatatypeExternal(data, parameters)
if parameters.formatting == 'externalid' then
local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL
local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"})
if p_link_pattern then
local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data})
return '[' .. p_link .. ' ' .. data .. ']'
end
end
return printDatatypeString(data, parameters)
end
-- format data type commonsMedia and geo-shape
local function printDatatypeMedia(data, parameters)
local icon
if not string.find((parameters.formatting or ''), '$1', 1, true) then
icon = "no-icon"
if not string.find(data, '^Data:') then
data = mw.uri.encode(data, 'PATH') -- encode special characters in filename
end
end
return printDatatypeString(data, parameters), icon
end
-- format data type globe-coordinate
local function printDatatypeCoordinate(data, formatting)
local function globes(globe_id)
-- parameter globe in coordinates accepted by GeoHack
-- see [[w:en:Special:PrefixIndex/Template:GeoTemplate]]
local globes = {['Q3343'] = 'ariel', ['Q3134'] = 'callisto', ['Q596'] = 'ceres',
['Q6604'] = 'charon', ['Q7548'] = 'deimos', ['Q15040'] = 'dione', ['Q2'] = 'earth',
['Q3303'] = 'enceladus', ['Q3143'] = 'europa', ['Q3169'] = 'ganymede',
['Q15037'] = 'hyperion', ['Q17958'] = 'iapetus', ['Q3123'] = 'io',
['Q319'] = 'jupiter', ['Q111'] = 'mars', ['Q308'] = 'mercury', ['Q15034'] = 'mimas',
['Q3352'] = 'miranda', ['Q405'] = 'moon', ['Q3332'] = 'oberon', ['Q7547'] = 'phobos',
['Q17975'] = 'phoebe', ['Q339'] = 'pluto', ['Q15050'] = 'rhea', ['Q15047'] = 'tethys',
['Q2565'] = 'titan', ['Q3322'] = 'titania', ['Q3359'] = 'triton',
['Q3338'] = 'umbriel', ['Q313']='venus', ['Q3030']='vesta'}
return globes[globe_id]
end
local function roundPrecision(num, prec)
if prec == nil or prec <= 0 then return num end
local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001
return math.floor(num / sig + 0.5) * sig
end
local precision = data.precision
local latitude = roundPrecision(data.latitude, precision)
local longitude = roundPrecision(data.longitude, precision)
if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then
local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude})
if string.find(formatting, '$globe', 1, true) then
local myglobe = 'earth'
if isSet(data.globe) then
local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2
myglobe = globes(globenum) or 'earth'
end
ret = mw.ustring.gsub(ret, '$globe', myglobe)
end
return expandBraces(ret, formatting)
elseif formatting == 'latitude' then
return latitude, "no-icon"
elseif formatting == 'longitude' then
return longitude, "no-icon"
elseif formatting == 'dimension' then
return data.dimension, "no-icon"
else --default formatting='globe'
if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then
return 'earth', "no-icon"
else
local globenum = mw.text.split(data.globe, 'entity/')[2]
return globes(globenum) or globenum, "no-icon"
end
end
end
-- Local functions for data value quantity
local function unitSymbol(id, lang) -- get unit symbol or code
local unit_symbol = ''
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true)
end
if unit_symbol == '' then
-- fetch it
local claims = mw.wikibase.getBestStatements(id, 'P5061')
if #claims > 0 then
local langclaims = {}
for _, snak in ipairs(claims) do
local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"})
if snak_language and not langclaims[snak_language] then -- just the first one by language
langclaims[snak_language] = snak.mainsnak.datavalue.value.text
end
end
for _, l in ipairs(lang) do
if langclaims[l] then
return langclaims[l]
end
end
end
end
return unit_symbol
end
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]"
else
suffix = unit_symbol
end
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit label
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]"
end
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
end
end
if suffix ~= '' then
suffix = ' ' .. suffix
end
return suffix
end
local function roundDefPrecision(in_num, factor)
-- rounds out_num with significant figures of in_num (default precision)
local out_num = in_num * factor
if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN
return out_num
end
-- first, count digits after decimal mark, handling cases like '12.345e6'
local exponent, prec
local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
-- significant figures
local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001
local out_bracket = in_bracket * out_num / in_num
out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001
-- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound)
return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket
end
-- format data type quantity
local function printDatatypeQuantity(data, parameters)
local amount = data.amount
amount = mw.ustring.gsub(amount, "%+", "")
-- THE FIX: If the template asks for 'raw' math, bypass the Kashmiri numbers
if parameters.formatting == 'raw' or parameters.colformat == 'raw' then
return amount
end
local suffix = ""
local conv_amount, conv_suffix
if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then
local unit_id = data.unit
unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1)
if string.sub(unit_id, 1, 1) == "Q" then
suffix = getUnit(amount, unit_id, parameters)
local convert_to
if parameters.convert == "default" or parameters.convert == "default2" then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if exist and units.convert_default and next(units.convert_default) ~= nil then
convert_to = units.convert_default[unit_id]
end
elseif string.sub(parameters.convert or '', 1, 1) == "Q" then
convert_to = parameters.convert
elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then
convert_to = 'Q11574' -- seconds
end
if convert_to and convert_to ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
}
if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount))
conv_amount = math.floor(tonumber(amount_f) + 0.5)
else
local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit
table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit
for _, conv in ipairs(conversions) do
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then
conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount))
break
end
end
end
end
if conv_amount then
conv_suffix = getUnit(conv_amount, convert_to, parameters)
end
elseif parameters.convert == 'M' then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if wiki.langcode == parameters.lang[1]
and exist and units.convert2M and type(units.convert2M) == "function"
then
conv_amount, conv_suffix = units.convert2M(amount)
conv_suffix = (conv_suffix or "").. suffix
elseif tonumber(amount) > 10^8 then
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. mw.text.trim(suffix)
end
end
if conv_amount and parameters.formatting == 'raw' then
amount = conv_amount
suffix = ""
conv_amount = nil
end
end
end
local lang_obj = mw.language.new(parameters.lang[1])
local sortkey = string.format("%019d", tonumber(amount) * 1000)
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == 'duration' then
return lang_obj:formatDuration(sec)
elseif parameters.formatting == 'durationm:s' then
local mm = math.floor(sec / 60)
local ss = sec - (mm * 60)
return string.format("%02d:%02d", mm, ss)
else -- durationhms or durationh:m:s
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals
local duration = ''
for i, v in ipairs(intervals) do
if parameters.formatting == 'durationh:m:s' then
if i == 1 and sec2table[v] then
duration = duration .. sec2table[v] .. ":"
elseif i == 2 then
duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":"
elseif i == 3 then
local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0))
duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str
end
elseif sec2table[v] then
duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "")
end
end
return duration
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id))
elseif parameters.formatting ~= 'raw' then
if parameters.numformat then
amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount)))
else
amount = lang_obj:formatNum(tonumber(amount))
end
end
if conv_amount then
local conv_sortkey = string.format("%019d", conv_amount * 1000)
conv_amount = lang_obj:formatNum(conv_amount)
if parameters.convert == 'default2' then
return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey
else
return conv_amount .. conv_suffix, conv_sortkey
end
elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern
amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount})
end
return amount .. suffix, sortkey
end
-- format data type time
local function printDatatypeTime(data, parameters)
-- Dates and times are stored in ISO 8601 format
local timestamp = data.time
if parameters.formatting == "raw" then
return timestamp, timestamp
end
local post_format
local calendar_add = ""
local precision = data.precision or 11
if string.sub(timestamp, 1, 1) == '-' then
post_format = i18n.datetime["bc"]
elseif string.sub(timestamp, 2, 3) == '00' then
post_format = i18n.datetime["ad"]
elseif precision > 8 then
-- calendar model
local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"}
local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2]
if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian")
or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian")
then
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end
local function formatTime(form, stamp)
local pattern
if type(form) == "function" then
pattern = form(stamp)
else
pattern = form
end
stamp = tostring(stamp)
if mw.ustring.find(pattern, "$1") then
return mw.ustring.gsub(pattern, "$1", stamp)
elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0
stamp = '+' .. string.sub(stamp, 2)
elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number
stamp = string.format("%04d", stamp)
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
end
local function postFormat(t)
if post_format and mw.ustring.find(post_format, "$1") then
return mw.ustring.gsub(post_format, "$1", t)
end
return t
end
local intyear = tonumber(string.match(timestamp, "[+-](%d+)"))
local ret = ""
if precision <= 5 then -- precision is 10000 years or more
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = formatTime(i18n.datetime[precision], y2)
if post_format == i18n.datetime["bc"] then
ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
local ret_number = string.match(ret, "%d+")
if ret_number ~= nil then
ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number)))
end
elseif precision == 6 or precision == 7 then -- millennia or centuries
local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1
ret = formatTime(i18n.datetime[precision], card)
ret = postFormat(ret)
elseif precision == 8 then -- decades
local card = math.floor(math.abs(intyear) / 10) * 10
ret = formatTime(i18n.datetime[8], card)
ret = postFormat(ret)
elseif intyear > 9999 then -- not a valid timestamp
return
elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year
ret = formatTime(i18n.datetime[9], intyear)
ret = postFormat(ret) .. calendar_add
elseif precision == 10 then -- month
ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month
ret = postFormat(ret) .. calendar_add
else -- precision 11, day
ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp)
ret = postFormat(ret) .. calendar_add
end
return ret, timestamp
end
-- format data value wikibase-entityid with data types wikibase-item or wikibase-property
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local entity_page = 'Special:EntityPage/' .. entity_id
local label, lang = getLabelByLangs(entity_id, parameters.lang)
local sitelink = mw.wikibase.getSitelink(entity_id)
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.gender == 'feminineform' then
labelcase = feminineForm(entity_id, lang) or labelcase
end
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
if labelcase == nil and i18n.qidlabels == false then
return
end
local ret1, ret2
if parameter == 'label' then
ret1 = labelcase or entity_id
ret2 = labelcase or entity_id
elseif parameter == 'sitelink' then
ret1 = (sitelink or 'd:' .. entity_page)
ret2 = sitelink or entity_id
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id)
ret1 = expandBraces(ret1, parameter)
ret2 = labelcase or entity_id
else
if parameter == "ucfirst" or parameter == "ucinternallink" then
if labelcase and lang then
labelcase = mw.language.new(lang):ucfirst(labelcase)
end
-- only first of a list, reset formatting for next ones
if parameter == "ucinterlanllink" then
parameters.formatting = 'internallink'
else
parameters.formatting = nil -- default format
end
end
if sitelink then
ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]'
ret2 = labelcase
elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then
ret1 = '[[' .. label .. '|' .. labelcase .. ']]'
ret2 = labelcase
else
ret1 = '[[d:' .. entity_page .. '|' .. (labelcase or entity_id) .. ']]'
ret2 = labelcase or entity_id
end
end
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
-- format data type wikibase-lexeme
local function printDatatypeLexeme(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local lemmas = mw.wikibase.getEntity(entity_id):getLemmas()
if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then
return
end
local ret = '[[d:Special:EntityPage/' .. entity_id .. '|' .. lemmas[1][1] .. ']]'
if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then
ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>"
end
return ret, entity_id
end
-- format data type monolingualtext
local function printDatatypeMonolingual(data, parameters)
-- data fields: language [string], text [string]
local valid_lang = {[parameters.lang[1]] = true, ["mul"] = true}
if parameters.list == "lang" and not valid_lang[data["language"]] then
return
elseif parameters.list == "notlang" and valid_lang[data["language"]] then
return
elseif parameters.formatting == "language" or parameters.formatting == "text" then
return data[parameters.formatting]
end
local result = data["text"]
valid_lang = {[wiki.langcode] = true, ["mul"] = true}
if not valid_lang[data["language"]] then
result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]})
end
if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then
-- output format defined with $text, $language
result = mw.ustring.gsub(parameters.formatting, '$text', result)
result = mw.ustring.gsub(result, '$language', data["language"])
end
return result
end
local function getSnakValue(snak, parameters)
parameters.editbridge = false
if snak.snaktype == 'value' then -- see Special:ListDatatypes
-- data value string
if snak.datatype == "string" then
parameters.editbridge = true -- Wikidata Bridge currently only for string values
return printDatatypeString(snak.datavalue.value, parameters)
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "tabular-data" then
return printDatatypeTabular(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
elseif snak.datatype == "external-id" then
return printDatatypeExternal(snak.datavalue.value, parameters)
elseif snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- data types other than string value
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
if i18n.suppress[snak.datavalue.value.id] then
return
end
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'wikibase-lexeme' then
return printDatatypeLexeme(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
elseif snak.datatype == "globe-coordinate" then
return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting)
elseif snak.datatype == "quantity" then
return printDatatypeQuantity(snak.datavalue.value, parameters)
elseif snak.datatype == "time" then
return printDatatypeTime(snak.datavalue.value, parameters)
end
elseif snak.snaktype == 'novalue' then
if parameters.formatting == 'raw' or parameters.shownovalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw' or parameters.showsomevalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
return mw.wikibase.renderSnak(snak)
end
local function printError(key)
return '<span class="error">' .. i18n.errors[key] .. '</span>'
end
local function getQualifierSnak(claim, qualifierId, parameters)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then
if qualifier[1].datatype == "monolingualtext" then
-- iterate over monolingualtext qualifiers to get languages
local qual_lang, qual_mul
for idx in pairs(qualifier) do
qual_lang = getSnak(qualifier[idx], {"datavalue", "value", "language"})
if qual_lang == parameters.lang[1] then
return qualifier[idx] -- return local language if found
elseif qual_lang == "mul" then
qual_mul = qualifier[idx]
end
end
return qual_mul -- else return multilingual
elseif parameters.list then
return qualifier
else
return qualifier[1]
end
end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameters)
local snak, error = getQualifierSnak(claim, qualifierId, parameters)
if not snak then
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.listmax)
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
if maxvals and maxvals == #result then break end
end
return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1]
else -- a property or a qualifier
return getSnakValue(snak, parameters)
end
end
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local value, sortkey, valueraw = {}, {}, {}
local parent_raw, value_text
if qids[1] == parameters.property then
parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
for idx, p_qid in ipairs(parent_qids) do
local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2])
if parent_claims[1] then
value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters)
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
if value[1] then
value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction)
end
return value_text, sortkey[1], valueraw[1]
end
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not (parameters.references or parameters.onlysourced) then
return '', false
end
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
local notproperref = {
["P143"] = true, -- imported from
["P3452"] = true, -- inferred from
["P887"] = true, -- based on heuristic
["P4656"] = true -- Wikimedia import URL
}
local result = {}
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
local refs = {}
local validref = true
local ref_id
-- traverse through all parts of the current reference
for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do
for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do
if notproperref[snakkey] then -- not a proper reference
validref = false
break
end
end
if validref then
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
if snakval[snakidx].datatype == 'external-id' then
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '')
else
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '')
end
end
refs[snakkey] = refparts
refparts = nil
if snakkey == "P248" then -- stated in
ref_id = getSnak(snakval, {1, "datavalue", "value", "id"})
end
end
end
-- fill missing values with parent item
if ref_id then
local function refParent(qid, pid, formatting)
local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"})
return snak and getSnakValue(snak, {formatting=formatting, lang=lang})
end
refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author
refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work
refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher
refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date
refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in
refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s)
refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue
refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN
refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI
end
-- get title of local templates for citing references
local template_web = mw.wikibase.getSitelink('Q5637226') or ""
template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front
local template_journal = mw.wikibase.getSitelink('Q5624899') or ""
template_journal = mw.text.split(template_journal, ":")[2]
local citeParams = {}
if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then
-- if both "reference URL" and "title" (or "stated in") are present, then use cite web template
citeParams[i18n['cite']['url']] = refs['P854']
if refs['P248'] and refs['P1476'] == nil then
citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]")
else
citeParams[i18n['cite']['title']] = refs['P1476']
citeParams[i18n['cite']['website']] = refs['P248']
end
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['publisher']] = refs['P123']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['access-date']] = refs['P813']
citeParams[i18n['cite']['archive-url']] = refs['P1065']
citeParams[i18n['cite']['archive-date']] = refs['P2960']
citeParams[i18n['cite']['quote']] = refs['P1683']
refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams}
elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then
-- if both "published in" and "title" (or "stated in") are present, then use cite journal template
citeParams[i18n['cite']['work']] = refs['P1433']
citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248']
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['issue']] = refs['P433']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['issn']] = refs['P236']
citeParams[i18n['cite']['doi']] = refs['P356']
refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams}
elseif validref then
-- raw ouput
local snaksorder = claim.references[ref]["snaks-order"]
local function indexed(a)
for _, b in ipairs(snaksorder) do
if b == a then return true end
end
return false
end
for k, _ in pairs(refs or {}) do
if not indexed(k) then
table.insert(snaksorder, k)
end
end
local italics = "''"
local ref_label
for _, k in ipairs(snaksorder) do
if refs[k] then
refparts = refparts and refparts .. " " or ""
ref_label = case('infoboxlabel', getLabelByLangs(k, lang) or '')
refparts = refparts .. mw.ustring.gsub(ref_label, "^%l", mw.ustring.upper) .. ": "
refparts = refparts .. italics .. refs[k] .. italics .. "."
italics = ""
end
end
end
if refparts then
local ref_name = claim.references[ref].hash
result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name})
if maxrefs and maxrefs == #result then break end
end
end
if #result > 0 then
if parameters.references then
if isSet(i18n.categoryref) then
result[#result + 1] = "[[" ..i18n.categoryref .. "]]"
end
return table.concat(result), true
else
return '', true
end
end
return '', false
end
-- Set lists of filtered values
local function setFilterLists(num_qual, args)
local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}}
for i = 0, num_qual do
for k, _ in pairs(lists) do
if isSet(args[k .. i]) then
lists[k][tostring(i)] = {}
local pattern = 'Q%d+'
if string.sub(args[k .. i], 1, 1) ~= 'Q' then
pattern = '[^%p%s]+'
end
for q in string.gmatch(args[k .. i], pattern) do
lists[k][tostring(i)][q] = true
end
end
end
end
return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue']
end
local function tableParameters(args, parameters, column)
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
column_params.case = args["case" .. column]
end
return column_params
end
local function getEntityId(args, pargs, unnamed)
pargs = pargs or {}
local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil)
if not isSet(id) then
id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil)
end
if isSet(id) then
if string.find(id, ":") then -- remove prefix as Property:Pid
id = mw.text.split(id, ":")[2]
end
else
id = mw.wikibase.getEntityIdForCurrentPage()
end
return id
end
local function getArg(value, default, aliases)
if type(value) == 'boolean' then return value
elseif value == "false" or value == "no" then return false
elseif value == "true" or value == "yes" then return true
elseif value and aliases and aliases[value] then return aliases[value]
elseif isSet(value) then return value
elseif default then return default
else return nil
end
end
-- Main function claim ---------------------------------------------
-- on debug console use: =p.claim{item="Q...", property="P...", ...}
function p.claim(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local is_sandbox = isSet(pargs.sandbox)
if not required and is_sandbox then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame)
end
--If a value is already set, use it
if isSet(args.value) then
if args.value == 'NONE' then
return
else
return args.value
end
end
-- arguments
local parameters = {}
parameters.id = getEntityId(args, pargs)
if parameters.id == nil then return end
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))
local i = 2
while isSet(args["qualifier" .. i]) do
qualifierId[i] = string.upper(args["qualifier" .. i])
i = i + 1
end
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.numformat = getArg(args.numformat)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.listmax = args.listmax
parameters.listrank = getArg(args.listrank)
if type(parameters.list) == "number" then -- backwards compatibility
parameters.listmax = parameters.listmax or parameters.list
parameters.list = true
elseif parameters.list == "bestrank" then
parameters.listrank = parameters.listrank or "bestrank"
parameters.list = true
end
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.showsomevalue = getArg(args.showsomevalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator = getArg(args.qseparator, parameters.separator)
parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction)
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references = getArg(args.references, false)
parameters.onlysourced = getArg(args.onlysourced, false)
local showerrors = args.showerrors
local default = args.default
if default then showerrors = nil end
parameters.lang = findLang(args.lang)
if parameters.formatting == "raw" then
parameters.editicon, parameters.labelicon = false, false
else
parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand
end
-- fetch property
local claims = {}
local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang'
for p in string.gmatch(parameters.property, 'P[%d/P]+') do -- P123 or P45/P67
if string.find(p, ".+/.+") then
local props = mw.text.split(p, "/")
local claims_child = {}
claims_child = getStatements(parameters.id, props[1], bestrank)
if #claims_child > 0 then
local parent_id, _, _ = getValueOfClaim(claims_child[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
if string.sub(parent_id or '', 1, 1) == "Q" then
claims = getStatements(parent_id, props[2], bestrank)
if #claims > 0 then
parameters.property = props[1]
break
end
end
end
else
claims = getStatements(parameters.id, p, bestrank)
if #claims > 0 then
parameters.property = p
break
end
end
end
if #claims == 0 then
local ret = showerrors and printError("property-not-found") or default
return ret, args.query == 'num' and 0 or ''
end
-- defaults for table
local preformat, postformat = "", ""
local whitelisted = false
local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {}
if parameters.formatting == "table" then
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain())
parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator)
if not rowformat then
rowformat = "$0 ($1"
i = 2
while qualifierId[i] do
rowformat = rowformat .. ", $" .. i
i = i + 1
end
rowformat = rowformat .. ")"
elseif mw.ustring.find(rowformat, "^[*#]") then
parameters.separator = "</li><li>"
parameters.conjunction = "</li><li>"
if mw.ustring.match(rowformat, "^[*#]") == "*" then
preformat = "<ul><li>"
postformat = "</li></ul>"
else
preformat = "<ol><li>"
postformat = "</li></ol>"
end
rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "")
end
-- set lists of filtered values
whitelist, blacklist, ignorevalue, selectvalue = setFilterLists(#qualifierId, args)
local next = next
if next(whitelist) ~= nil then whitelisted = true end
end
-- set feminine case if gender is requested
local itemgender = args.itemgender
local idgender
if itemgender then
if string.match(itemgender, "^P%d+$") then
local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"})
if snak_id then
idgender = snak_id
end
elseif string.match(itemgender, "^Q%d+$") then
idgender = itemgender
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
gender_requested = true
elseif parameters.formatting == "table" then
for i=0, #qualifierId do
if args["case" .. i] and args["case" .. i] == "gender" then
gender_requested = true
break
end
end
end
if gender_requested then
if feminineGender(idgender or parameters.id) then
parameters.gender = "feminineform"
end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result, result2, result_query
local error
if parameters.list or parameters.formatting == "table" then
-- convert LF to line feed, <br /> may not work on some cases
parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator
parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction
-- i18n separators
parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()
parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain())
-- iterate over all elements and return their value (if existing)
local value, valueq
local sortkey, sortkeyq
local values = {}
local sortkeys = {}
local refs = {}
local rowlist = {} -- rows to list with whitelist or blacklist
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
local reference = {}
if not whitelisted then rowlist[idx] = true end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0")
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
if whitelist["0"] or blacklist["0"] then
local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang})
if whitelist["0"] and whitelist["0"][valueraw or ""] then
rowlist[#values] = true
elseif blacklist["0"] and blacklist["0"][valueraw or ""] then
rowlist[#values] = false
end
end
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j)
local valueq, sortkeyq, valueraw
if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw
valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params)
else
for q in mw.text.gsplit(qual, '%s*OR%s*') do
if string.find(q, ".+/.+") then
valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params)
elseif string.find(q, "^/.+") then
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
-- only first value of a property as alternative to a qualifier
-- multiple values may not be related to a given raw of the table
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
else
valueq, sortkeyq, _ = getValueOfClaim(claim, q, params)
end
if valueq then
qual = q
break
end
end
end
values[#values]["col" .. j] = valueq
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang, ["list"]=params.list})
if valueq then
if whitelist[j] then
for k, v in pairs(whitelist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = true
end
end
elseif blacklist[j] then
for k, v in pairs(blacklist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = false
end
end
elseif ignorevalue[j] then
for k, v in pairs(ignorevalue[j]) do
if v and string.find(valueq, k, 1, true) then
values[#values]["col" .. j] = nil
end
end
elseif selectvalue[j] then
local selected
for k, v in pairs(selectvalue[j]) do
if v and string.find(valueq, k, 1, true) then
selected = true
end
end
if selected == nil then
values[#values]["col" .. j] = nil
end
end
end
end
end
end
else
value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters)
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
end
if not value and showerrors then value = error end
if value then
if (parameters.references or parameters.onlysourced) and claim.references then
reference = claim.references
end
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
sortkeys[#sortkeys]["col0"] = sortkey or value
end
end
-- sort and format results
sortindices = {}
for idx in pairs(values) do
sortindices[#sortindices + 1] = idx
end
if sorting_col then
local sorting_table = mw.text.split(sorting_col, '%D+')
local comparator = function(a, b)
local valuea, valueb
local i = 1
while valuea == valueb and i <= #sorting_table do
valuea = sortkeys[a]["col" .. sorting_table[i]] or ''
valueb = sortkeys[b]["col" .. sorting_table[i]] or ''
i = i + 1
end
if sorting_up then
return valueb > valuea
end
return valueb < valuea
end
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.listmax)
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters)
value = valuerow["col0"]
if parameters.formatting == "table" then
if not rowlist[sortindices[idx]] then
value = nil
else
local rowformatting = rowformat .. "$" -- fake end character added for easy gsub
value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value})
value = mw.ustring.gsub(value, "$R0", reference) -- add reference
for i, _ in ipairs(qualifierId) do
local valueq = valuerow["col" .. i]
if args["rowsubformat" .. i] and isSet(valueq) then
-- add fake end character $
-- gsub $i not followed by a number so $1 doesn't match $10, $11...
-- remove fake end character
valueq = captureEscapes(valueq)
valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1")
valueq = string.sub(valueq, 1, -2)
rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1")
end
valueq = valueq and captureEscapes(valueq) or ''
value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1")
end
value = string.sub(value, 1, -2) -- remove fake end character
value = expandBraces(value, rowformatting)
end
elseif value then
value = expandBraces(value, parameters.formatting)
value = value .. reference
end
if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
break
end
end
end
if args.query == 'num' then
result_query = #result
end
if #result > 0 then
if parameters.formatting == 'table' then
result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element
end
result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat
else
result = ''
end
else
-- return first element
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result then
local ref, valid_ref = getReferences(claim, parameters)
if parameters.onlysourced and valid_ref == false then
result = nil
else
result = result .. ref
end
end
if args.query == 'num' then result_query = result and 1 or 0 end
end
if isSet(result) then
if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then
-- add edit icon, except table added previously and except explicit no-icon internal flag
result = result .. addEditIcon(parameters)
end
else
if showerrors then result = error else result = default end
end
if args.query == 'untranslated' and required and not is_sandbox then
result_query = untranslated
end
return result, result_query or ''
end
-- Local functions for getParentValues -----------------------
local function uc_first(word)
if word == nil then return end
return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2)
end
local function getPropertyValue(id, property, parameter, langs, labelicon, case)
local snaks = mw.wikibase.getBestStatements(id, property)
local mysnak = getSnak(snaks, {1, "mainsnak"})
if mysnak == nil then
return
end
local entity_id
local result = '-' -- default for 'no value'
if mysnak.datavalue then
entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id'])
result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case})
end
return entity_id, result
end
local function getParentObjects(id,
prop_format,
label_format,
languages,
propertySupString,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
grammatical_case,
include_self)
local propertySups = mw.text.split(propertySupString, '[^P%d]')
local maxloop = 10
if upto_number then
maxloop = upto_number
elseif next(upto_label) or next(upto_value) then
maxloop = 50
end
local labels_filter = next(label_show)
local result = {}
local id_value = id
for iter = 1, maxloop do
local link, label, labelwicon, linktext, id_label
for _, propertySup in pairs(propertySups) do
local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case)
if _id_value and _link then id_value = _id_value; link = _link break end
end
if not id_value or not link then break end
if propertyLink then
_, linktext = getPropertyValue(id_value, propertyLink, "label", languages)
if linktext then
link = link .. " (" .. linktext .. ")"
end
end
id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel")
if labelicon0 then
_, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
else
labelwicon = label
end
if labels_filter == nil or (label_show[id_label] or label_show[label]) then
result[#result + 1] = {labelwicon, link}
label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found
end
if upto_label[id_label] or upto_label[label] or upto_value[id_value] then
break
end
end
if last_only then
result = {result[#result]}
end
if include_self then
local label_self, link_self
_, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
link_self, _ = getLabelByLangs(id, languages)
table.insert(result, 1, {label_self, link_self})
end
return result
end
local function parentObjectsToString(result,
rowformat,
cascade,
sorting)
local ret = {}
local first = 1
local last = #result
local iter = 1
if sorting == "-1" then first = #result; last = 1; iter = -1 end
for i = first, last, iter do
local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]})
ret[#ret + 1] = expandBraces(rowtext, rowformat)
end
if cascade then
local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left"
local suffix = ""
for i = 1, #ret do
ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i]
suffix = suffix .. '</li></ul>'
end
ret[#ret] = ret[#ret] .. suffix
end
return ret
end
-- Returns pairs of parent label and property value fetching a recursive tree
function p.getParentValues(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame)
end
local id = getEntityId(args, pargs)
if id == nil then return end
local languages = findLang(args.lang)
local propertySup = getArg(args.property, "P131") --administrative entity
local propertyLabel = getArg(args.label, "P31") --instance
local propertyLink = getArg(args.valuetext)
local property_format = getArg(args.formatting)
local label_format = getArg(args.labelformat, "label")
local upto_number = getArg(args.upto)
local last_only = getArg(args.last_only, false)
local editicon, labelicon = setIcons(args.editicon, pargs.editicon)
local include_self = getArg(args.include_self, false)
local case = getArg(args.case)
local upto_label = {}
for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do
upto_label[q] = true
end
if type(tonumber(upto_number)) == "number" then
upto_number = tonumber(upto_number)
elseif type(upto_number) == 'string' then
upto_number = nil
require(wiki.module_title .. '/debug').track('upto') -- replace upto by uptolabelid
end
local upto_value = {}
for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do
upto_value[q] = true
end
local label_show = {}
for q in string.gmatch(args.showlabelid or '', 'Q%d+') do
label_show[q] = true
end
for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do
if v ~= '' then
label_show[uc_first(v)] = true
require(wiki.module_title .. '/debug').track('labelshow') -- replace labelshow by showlabelid
end
end
local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end
local labelicon0, labelicon1 = labelicon, labelicon
if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then
labelicon0 = false
end
local result = getParentObjects(id,
property_format,
label_format,
languages,
propertySup,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
case,
include_self)
if #result == 0 then return end
local separator = args.separator; if not isSet(separator) then separator = "<br />" end
local sorting = args.sorting; if sorting == "" then sorting = nil end
local cascade = (args.cascade == "true" or args.cascade == "yes")
local ret = parentObjectsToString(result,
rowformat,
cascade,
sorting)
ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages})
return mw.text.listToText(ret, separator, separator)
end
-- Link with a parent label --------------------
function p.linkWithParentLabel(frame)
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame)
end
local args = {}
if frame.args then
for k, v in pairs(frame.args) do -- metatable
args[k] = v
end
else
args = frame -- via require
end
if isSet(args.value) then
return args.value
end
-- get id value of property/qualifier
local largs = mw.clone(args)
largs.list = tonumber(args.list) and args.list or true
largs.formatting = "raw"
largs.separator = "/·/"
largs.editicon = false
local items_list, _ = p.claim(largs)
if not isSet(items_list) then return end
local items_table = mw.text.split(items_list, "/·/", true)
-- get internal link of property/qualifier
if isSet(args.formatting) then
largs.formatting = nil -- default link if defined with any value
else
largs.formatting = "internallink"
end
local link_list, _ = p.claim(largs)
local link_table = mw.text.split(link_list, "/·/", true)
-- get label of parent property
local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"})
if parent_claim == 'monolingualtext' then
largs.formatting = nil
largs.list = 'lang'
else
largs.formatting = "label"
largs.list = false
end
largs.property = args.parent
largs.qualifier = nil
for i, v in ipairs(items_table) do
largs.item = v
local link_label, _ = p.claim(largs)
if isSet(link_label) then
link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
args.editicon, _ = setIcons(args.editicon, pargs.editicon)
args.id = getEntityId(args, pargs)
args.lang = findLang(args.lang)
return mw.text.listToText(link_table) .. addEditIcon(args)
end
-- Calculate number of years old ----------------------------
function p.yearsOld(frame)
if not required and frame.args and isSet(frame:getParent().args.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame)
end
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return end
local lang = mw.language.new('en')
local function getBestDate(id, prop)
local mainsnak = getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak"})
if mainsnak and mainsnak.snaktype then
if mainsnak.snaktype == "somevalue" then
return {time = nil, precision = 0}
elseif mainsnak.snaktype == "value" then
return getSnak(mainsnak, {"datavalue", "value"})
end
end
return {time = nil, precision = nil}
end
local birth = getBestDate(id, 'P569')
if birth.time == nil or birth.precision < 8 then
return
end
local death = getBestDate(id, 'P570')
if death.precision and death.precision < 8 then -- includes somevalue
return
elseif death.time == nil then
death = {time = lang:formatDate('c'), precision = 11} -- current date
end
local dates = {}
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "-(%d%d)-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "-(%d%d)-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
for i, d in ipairs(dates) do
if d.precision == 10 then -- month
d.min.day = 1
local timestamp = string.format("%04d", tostring(math.abs(d.max.year)))
.. string.format("%02d", tostring(d.max.month))
.. "01"
d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day"))
elseif d.precision < 10 then -- year or decade
d.min.day = 1
d.min.month = 1
d.max.day = 31
d.max.month = 12
if d.precision == 8 then -- decade
d.max.year = d.max.year + 9
end
end
end
local function age(d1, d2)
local years = d2.year - d1.year
if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then
years = years - 1
end
if d2.year > 0 and d1.year < 0 then
years = years - 1 -- no year 0
end
return years
end
local old_min = age(dates[1].max, dates[2].min)
local old_max = age(dates[1].min, dates[2].max)
if old_max > 200 then
require(wiki.module_title .. '/debug').track('200yo')
end
local old, old_expr
if old_min == 0 and old_max == 0 then
old = "< 1"
old_max = 1 -- expression in singular
elseif old_min == old_max then
old = old_min
else
old = old_min .. "/" .. old_max
end
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo
local yo_pl = {}
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"]
end
if not isSet(yo_pl[2]) then
local yo_label, _ = getLabelByLangs('Q24564698', langs)
yo_pl = {yo_label, yo_label}
end
yo = mw.language.new(langs[1]):plural(old_max, yo_pl)
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
else
old_expr = old .. ' ' .. yo
end
elseif args.formatting then
old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting)
else
old_expr = old
end
return old_expr
end
-- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked.
function p.getLabel(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame)
end
local id = getEntityId(args, pargs, 1)
if id == nil then return end
local languages = findLang(args.lang)
local labelicon = false
if mw.wikibase.isValidEntityId(id) then
_, labelicon = setIcons(args.editicon, pargs.editicon)
end
local label_icon = ''
local label, lang
if args.label then
label = args.label
else
-- exceptions or labels fixed
local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1]))
if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then
label = labels.infoboxLabelsFromId[id]
end
if label == nil then
label, lang = getLabelByLangs(id, languages)
if label then
if isSet(args.itemgender) then
if feminineGender(args.itemgender) then
label = feminineForm(id, lang) or label
end
local _, items_g = string.gsub(args.itemgender, "Q%d+", "")
if not isSet(args.case) and items_g > 1 then
args.case = "plural"
end
end
label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize
if args.case then
label = case(args.case, label, lang)
end
end
label_icon = addLabelIcon(id, lang, languages[1], labelicon)
end
end
local linked = args.linked
local ret2 = required and untranslated or ''
if isSet(linked) and linked ~= "no" then
local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id)
return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2
else
return (label or id) .. label_icon, ret2
end
end
function p.sitelinks(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
-- arguments
local param = {}
param.id = getEntityId(args, pargs)
if param.id == nil then return end
param.project = getArg(args.project)
param.site = getArg(args.site)
param.sitelang = getArg(args.sitelang)
param.show = getArg(args.formatting, '[[$w:$l:$t|$s:$t]] $i')
param.sep = getArg(args.separator, ', ')
-- fetch sitelinks
local sitelinks_obj = mw.wikibase.getEntity(param.id).sitelinks
local slinks = {} -- do some clean up (commonswiki > commons) and add some data
local iw = {['wikipedia'] = 'w', ['wikibooks'] = 'b', ['wikinews'] = 'n', ['wikiquote'] = 'q',
['wikisource'] = 's', ['wikiversity'] = 'v', ['wikivoyage'] = 'voy', ['wiktionary'] = 'wikt', ['commons'] = 'c',
['meta'] = 'm', ['mediawiki'] = 'mw', ['species'] = 'species', ['wikidata'] = 'd', ['wikifunctions'] = 'f'}
for slink, sdata in pairs(sitelinks_obj) do
-- langcode + wiki, wikibooks, wikinews, wikiquote, wikisource, wikiversity, wikivoyage, wiktionary
local s_lang = string.match(slink, '(%l+)wik[it]')
local s_project = string.match(slink, 'wik[it]%l*')
if slink == 'commonswiki' or slink == 'metawiki' or slink == 'mediawikiwiki'
or slink == 'specieswiki' or slink == 'wikidatawiki' or slink == 'wikifunctionswiki'
then
s_project = string.sub(slink, 1, -5) -- remove -wiki
slinks[s_project] = {['lang'] = 'und', ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiki' then -- restore project full name
slinks[slink] = {['lang'] = s_lang, ['project'] = 'wikipedia', ['iw'] = 'w', ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiktionary' then -- use short site name
s_project = string.sub(slink, 1, -7)
slinks[s_project] = {['lang'] = s_lang, ['project'] = 'wiktionary', ['iw'] = 'wikt', ['title'] = sdata.title, ['badges'] = sdata.badges}
else
slinks[slink] = {['lang'] = s_lang, ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
end
end
-- select requested project, site, sitelang
local slinks_req = {}
if not (param.project or param.site or param.sitelang) then
slinks_req = slinks
else
for pr in string.gmatch(param.project or '', '%l+') do -- lowercase letters, skip separators
for sl, sd in pairs(slinks) do
if sd.project == pr then
slinks_req[sl] = sd
end
end
end
for s in string.gmatch(param.site or '', '%l+') do
for sl, sd in pairs(slinks) do
if sl == s then
slinks_req[sl] = sd
end
end
end
for l in string.gmatch(param.sitelang or '', '%l+') do
for sl, sd in pairs(slinks) do
if sd.lang == l then
slinks_req[sl] = sd
end
end
end
end
-- sort table
local sites_sorted = {}
for sitex in pairs(slinks_req) do
sites_sorted[#sites_sorted + 1] = sitex
end
local sort_project_lang = function(a, b)
local key_a = slinks_req[a].project .. slinks_req[a].lang
local key_b = slinks_req[b].project .. slinks_req[b].lang
return key_a < key_b
end
table.sort(sites_sorted, sort_project_lang)
-- format output
local showtext = {}
local shownum, showbnum = 0, 0
for _, sl in ipairs(sites_sorted) do
local sd = slinks_req[sl]
local show = param.show -- default '[[$w:$l:$t|$s:$t]] $i' iw:lang:title, site:title icon, also $p project
show = string.gsub(show, '$w', sd.iw)
show = string.gsub(show, '$p', sd.project)
if sd.lang == 'und' then
show = string.gsub(show, '$l:?', '')
else
show = string.gsub(show, '$l', sd.lang)
end
show = string.gsub(show, '$t', sd.title)
show = string.gsub(show, '$s', sl)
if next(sd.badges) then
show = string.gsub(show, '$i', '[[File:Article de qualité.svg|15x15px]]')
showbnum = showbnum + 1
else
show = string.gsub(show, ' ?$i', '')
end
if show ~= param.show then
table.insert(showtext, show)
end
shownum = shownum + 1
end
local output
if string.find(param.show, '$[nb]') then
output = string.gsub(param.show, '$n', shownum) -- number of sites
output = string.gsub(output, '$b', showbnum) -- number of badges
else
output = table.concat(showtext, param.sep)
end
return output
end
-- Utilities -----------------------------
-- See also module ../debug.
-- Copied from Module:Wikibase
function p.getSiteLink(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs, 1)
if id == nil then return end
return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or ''))
end
-- Helper function for the default language code used
function p.lang(frame)
local lang = frame and frame.args[1] -- nil via require
return findLang(lang)[1]
end
-- Number of statements
function p.numStatements(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return 0 end
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) then
local largs = {}
for k, v in pairs(pargs) do
largs[k] = v
end
for k, v in pairs(args) do
largs[k] = v
end
largs.query = 'num'
_, num = p.claim(largs)
return num
elseif args[2] then -- qualifier
local qual = mw.text.trim(args[2])
local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'}
if values then
num = mw.text.split(values, '/·/')
end
else
num = mw.wikibase.getBestStatements(id, prop)
end
return #num
end
-- Returns true if property datavalue is found excluding novalue/somevalue
function p.validProperty(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local item = getEntityId(args, pargs)
if item == nil then return end
local property = mw.text.trim(args[1])
local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"})
return prop_data and true or nil
end
function p.editAtWikidata(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local value = isSet(args[1])
if value then return end
local param = {}
param.id = getEntityId(args, pargs)
param.property = args.property
param.lang = findLang(args.lang)
param.editicon, _ = setIcons(args.editicon)
return addEditIcon(param)
end
function p.formatNum(frame)
local val = frame.args[1]
if not val or mw.text.trim(val) == "" then
return ""
end
val = mw.text.trim(val)
-- Clean out all Wikidata junk (references, commas, plus signs, percentage signs)
local clean_val = string.gsub(val, "%[.-%]", "")
clean_val = string.gsub(clean_val, "^%+", "")
clean_val = string.gsub(clean_val, "[,%s ]", "")
clean_val = string.gsub(clean_val, "[%%%٪]", "")
local num = tonumber(clean_val)
-- If it's pure text, return the text
if not num then
return val
end
-- Format in Kashmiri
local lang_arg = frame.args[2]
local lang_code = 'ks'
if lang_arg and mw.text.trim(lang_arg) ~= "" then
local lang = findLang(mw.text.trim(lang_arg))
if lang and lang[1] then
lang_code = lang[1]
end
end
return mw.language.new(lang_code):formatNum(num)
end
return p
dpy3iczo0q9vgayamyxgnp7eb6kbfcs
142935
142927
2026-06-26T10:31:49Z
آیات محراج
11062
142935
Scribunto
text/plain
-- version 20260211 from master @cawiki
-- changes from previous version:
-- new function sitelinks
local p = {}
-- Initialization of variables --------------------
local i18n = { -- internationalisation at subpage /i18n
["errors"] = {
["property-not-found"] = "Property not found.",
["qualifier-not-found"] = "Qualifier not found.",
},
["datetime"] = {
-- $1 is a placeholder for the actual number
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = "$1 BCE", -- how print negative years
["ad"] = "$1", -- how print 1st century AD dates
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100000 years", -- precision: hundred thousand years; thousand separators added afterwards
[5] = "$10000 years", -- precision: ten thousand years; thousand separators added afterwards
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs
},
["years-old"] = {"", ""}, -- year(s) old, as in magic word {PLURAL:$1|singular|plural}
-- two values for most languages, up to six values for some languages, examples:
-- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages
-- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic
-- see documentation of PLURAL in your language at [[mw:Help:Magic words#Localization 2]]
["cite"] = { -- cite parameters
["title"] = "title",
["author"] = "author",
["date"] = "date",
["pages"] = "pages",
["language"] = "language",
-- cite web parameters
["url"] = "url",
["website"] = "website",
["access-date"] = "access-date",
["archive-url"] = "archive-url",
["archive-date"] = "archive-date",
["publisher"] = "publisher",
["quote"] = "quote",
-- cite journal parameters
["work"] = "work",
["issue"] = "issue",
["issn"] = "issn",
["doi"] = "doi"
},
-- default local wiki settings
["addpencil"] = false, -- adds a pencil icon linked to Wikidata statement, planned to overwrite by Wikidata Bridge
["categorylabels"] = "", -- Category:Pages with Wikidata labels not translated (void for no local category)
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}, -- additional fallback language codes
["suppressids"] = {}, -- list of Qid values to suppress
["qidlabels"] = true -- show labels as Qid if no fallback translation is available
}
local cases = {} -- functions for local grammatical cases defined at subpage /i18n
local required = ... -- variadic arguments from require function
local wiki =
{
langcode = mw.language.getContentLanguage().code,
module_title = required or mw.getCurrentFrame():getTitle()
}
local untranslated -- used in infobox modules: nil or true
local _ -- variable for unused returned values, avoiding globals
-- Module local functions --------------------------------------------
-- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0
local function tableMerge(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n(lang)
local exist, res = pcall(require, wiki.module_title .. "/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
cases = res.cases
end
if lang ~= wiki.langcode then
exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang)
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
tableMerge(cases, res.cases)
end
end
i18n.suppress = {}
for _, id in ipairs(i18n.suppressids) do
i18n.suppress[id] = true
end
end
-- Table of language codes: requested or default and its fallbacks
local function findLang(langcode)
if mw.language.isKnownLanguageTag(langcode or '') == false then
local cframe = mw.getCurrentFrame()
local pframe = cframe:getParent()
langcode = pframe and pframe.args.lang
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:callParserFunction('int', {'lang'})
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
langcode = wiki.langcode
end
end
end
loadI18n(langcode)
local languages = mw.language.getFallbacksFor(langcode)
table.insert(languages, 1, langcode)
table.insert(languages, 2, "mul") -- see [[d:Help:Default values for labels and aliases]]
if langcode == wiki.langcode then
for _, l in ipairs(i18n.addfallback) do
table.insert(languages, l)
end
end
return languages
end
-- Argument is 'set' when it exists (not nil) or when it is not an empty string.
local function isSet(var)
return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == ''))
end
-- Set local case to a label
local function case(localcase, label, ...)
if not isSet(label) then return label end
if type(localcase) == "function" then
return localcase(label)
elseif localcase == "smallcaps" then
return '<span style="font-variant: small-caps;">' .. label .. '</span>'
elseif cases[localcase] then
return cases[localcase](label, ...)
end
return label
end
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if not ret then return end
ret = ret[v]
end
return ret
end
-- get label with an array of fallback languages
-- mw.wikibase.getLabelWithLang uses lang mul as last fallback, not the first one
local function getLabelByLangs(id, languages)
local label, lang
for _, l in ipairs(languages) do
label = mw.wikibase.getLabelByLang(id, l)
if label then
lang = (l == "mul" and languages[1] or l)
break
end
end
return label, lang
end
-- getBestStatements if bestrank=true, else getAllStatements with no deprecated
local function getStatements(entityId, property, bestrank)
local claims = {}
if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end
if bestrank then
claims = mw.wikibase.getBestStatements(entityId, property)
else
local allclaims = mw.wikibase.getAllStatements(entityId, property)
for _, c in ipairs(allclaims) do
if c.rank ~= "deprecated" then
table.insert(claims, c)
end
end
end
return claims
end
-- Is gender femenine? true or false
local function feminineGender(id)
for idn in string.gmatch(id, "Q%d+") do
local claims = mw.wikibase.getBestStatements(idn or mw.wikibase.getEntityIdForCurrentPage(),'P21')
local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"})
if gender_id == nil or not (gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445") then
-- not female, transgender female or female organism
return false
end
end
return true
end
-- Fetch female form of label
local function feminineForm(id, lang)
local feminine_claims = getStatements(id, 'P2521')
for _, feminine_claim in ipairs(feminine_claims) do
if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then
return feminine_claim.mainsnak.datavalue.value.text
end
end
end
-- Add an icon for no label in requested language
local function addLabelIcon(label_id, lang, uselang, icon)
local ret_lang, ret_icon = '', ''
if icon then
if lang and lang ~= uselang then
ret_lang = " <sup>(" .. lang .. ")</sup>"
end
if label_id and (lang == nil or lang ~= uselang) then
local namespace = ''
if string.sub(label_id, 1, 1) == 'P' then
namespace = 'Property:'
end
ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|class=skin-invert|"
.. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain()
.. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]"
untranslated = true
end
if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then
ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]')
end
end
return ret_lang .. ret_icon
end
-- editicon values: true/false (no=false), right, void defaults to i18n.addpencil
-- labelicon only by parameter
local function setIcons(arg, parg)
local val = arg == nil and parg or arg
local edit_icon, label_icon
if not isSet(val) then
edit_icon, label_icon = i18n.addpencil, true
elseif val == false or val == "false" or val == "no" then
edit_icon, label_icon = false, false
else
edit_icon, label_icon = val, true
end
return edit_icon, label_icon
end
-- Add an icon for editing a statement with requirements for future Wikidata Bridge
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or ''
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>'
.. "[[File:Arbcom ru editing.svg|10px|baseline|"
.. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata')
.. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]"
.. "</span>"
if isSet(i18n.categoryprop) then
ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]"
end
end
return ret
end
-- add edit icon to the last element of a table
local function addEditIconTable(thetable, parameters)
if #thetable == 0 or parameters.editicon == false then
return thetable
end
local last_element = thetable[#thetable]
local the_icon = addEditIcon(parameters)
-- add it before last html closing tags
local tags = ''
local rev_element = string.reverse(last_element)
for tag in string.gmatch(rev_element, '(>%l+/<)') do
if string.match(rev_element, '^' .. tags .. tag) then
tags = tags .. tag
else
break
end
end
local last_tags = string.reverse(tags)
local offset = string.find(last_element, last_tags .. '$')
if offset then
thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags
else
thetable[#thetable] = last_element .. the_icon
end
return thetable
end
-- Escape Lua captures
local function captureEscapes(text)
return mw.ustring.gsub(text, "(%%%d)", "%%%1")
end
-- expandTemplate or callParserFunction
local function expandBraces(text, formatting)
if text == nil or formatting == nil then return text end
-- only expand braces if provided in argument, not included in value as in Q1164668
if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end
if type(text) ~= "string" then
text = tostring(text)
end
for braces in mw.ustring.gmatch(text, "{{(.-)}}") do
local parts = mw.text.split(braces, "|")
local title_part = parts[1]
local parameters = {}
for i = 2, #parts do
local subparts = mw.ustring.find(parts[i], "=")
if subparts then
local param_name = mw.ustring.sub(parts[i], 1, subparts - 1)
local param_value = mw.ustring.sub(parts[i], subparts + 1, -1)
-- reconstruct broken links by parts
if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then
parameters[param_name] = param_value
local part_next = i + 1
while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do
parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next]
part_next = part_next + 1
end
else
parameters[param_name] = param_value
end
elseif not mw.ustring.find(parts[i], "]]", 1, true) then
table.insert(parameters, parts[i])
end
end
local braces_expanded
if mw.ustring.find(title_part, ":")
and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template:
then
braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters}
elseif title_part == "!" then
-- template:! may be deleted locally, now provided by MediaWiki
-- although it works, it raises a Lua internal error
braces_expanded = "|"
else
braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters}
end
braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters
braces_expanded = captureEscapes(braces_expanded)
text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded)
end
return text
end
-- format data type math
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
end
-- format data type musical-notation
local function printDatatypeMusical(data, formatting)
local attr = {}
if formatting == 'sound' then
attr.sound = 1
end
return mw.getCurrentFrame():extensionTag('score', data, attr)
end
-- format data type string
local function printDatatypeString(data, parameters)
if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting)
elseif parameters.case then
return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id))
end
local data_number = string.match(data, "^%d+")
if data_number then -- sort key by initial number and remaining string
local sortkey = string.format("%019d", data_number * 1000)
return data, sortkey .. string.sub(data, #data_number + 1)
end
return data
end
-- format data type tabular-data
local function printDatatypeTabular(data, parameters)
local icon
if parameters.formatting == 'raw' then
icon = "no-icon"
data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data
end
return printDatatypeString(data, parameters), icon
end
-- format data type url
local function printDatatypeUrl(data, parameters)
if parameters.formatting == 'weblink' then
local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/')
local label = string.gsub(label_parts[3], '^www%.', '')
if #label_parts > 3 then
label = label .. '…'
end
return '[' .. data .. ' ' .. label .. ']'
end
return printDatatypeString(data, parameters)
end
-- format data type external-id
local function printDatatypeExternal(data, parameters)
if parameters.formatting == 'externalid' then
local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL
local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"})
if p_link_pattern then
local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data})
return '[' .. p_link .. ' ' .. data .. ']'
end
end
return printDatatypeString(data, parameters)
end
-- format data type commonsMedia and geo-shape
local function printDatatypeMedia(data, parameters)
local icon
if not string.find((parameters.formatting or ''), '$1', 1, true) then
icon = "no-icon"
if not string.find(data, '^Data:') then
data = mw.uri.encode(data, 'PATH') -- encode special characters in filename
end
end
return printDatatypeString(data, parameters), icon
end
-- format data type globe-coordinate
local function printDatatypeCoordinate(data, formatting)
local function globes(globe_id)
-- parameter globe in coordinates accepted by GeoHack
-- see [[w:en:Special:PrefixIndex/Template:GeoTemplate]]
local globes = {['Q3343'] = 'ariel', ['Q3134'] = 'callisto', ['Q596'] = 'ceres',
['Q6604'] = 'charon', ['Q7548'] = 'deimos', ['Q15040'] = 'dione', ['Q2'] = 'earth',
['Q3303'] = 'enceladus', ['Q3143'] = 'europa', ['Q3169'] = 'ganymede',
['Q15037'] = 'hyperion', ['Q17958'] = 'iapetus', ['Q3123'] = 'io',
['Q319'] = 'jupiter', ['Q111'] = 'mars', ['Q308'] = 'mercury', ['Q15034'] = 'mimas',
['Q3352'] = 'miranda', ['Q405'] = 'moon', ['Q3332'] = 'oberon', ['Q7547'] = 'phobos',
['Q17975'] = 'phoebe', ['Q339'] = 'pluto', ['Q15050'] = 'rhea', ['Q15047'] = 'tethys',
['Q2565'] = 'titan', ['Q3322'] = 'titania', ['Q3359'] = 'triton',
['Q3338'] = 'umbriel', ['Q313']='venus', ['Q3030']='vesta'}
return globes[globe_id]
end
local function roundPrecision(num, prec)
if prec == nil or prec <= 0 then return num end
local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001
return math.floor(num / sig + 0.5) * sig
end
local precision = data.precision
local latitude = roundPrecision(data.latitude, precision)
local longitude = roundPrecision(data.longitude, precision)
if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then
local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude})
if string.find(formatting, '$globe', 1, true) then
local myglobe = 'earth'
if isSet(data.globe) then
local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2
myglobe = globes(globenum) or 'earth'
end
ret = mw.ustring.gsub(ret, '$globe', myglobe)
end
return expandBraces(ret, formatting)
elseif formatting == 'latitude' then
return latitude, "no-icon"
elseif formatting == 'longitude' then
return longitude, "no-icon"
elseif formatting == 'dimension' then
return data.dimension, "no-icon"
else --default formatting='globe'
if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then
return 'earth', "no-icon"
else
local globenum = mw.text.split(data.globe, 'entity/')[2]
return globes(globenum) or globenum, "no-icon"
end
end
end
-- Local functions for data value quantity
local function unitSymbol(id, lang) -- get unit symbol or code
local unit_symbol = ''
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true)
end
if unit_symbol == '' then
-- fetch it
local claims = mw.wikibase.getBestStatements(id, 'P5061')
if #claims > 0 then
local langclaims = {}
for _, snak in ipairs(claims) do
local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"})
if snak_language and not langclaims[snak_language] then -- just the first one by language
langclaims[snak_language] = snak.mainsnak.datavalue.value.text
end
end
for _, l in ipairs(lang) do
if langclaims[l] then
return langclaims[l]
end
end
end
end
return unit_symbol
end
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]"
else
suffix = unit_symbol
end
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit label
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]"
end
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
end
end
if suffix ~= '' then
suffix = ' ' .. suffix
end
return suffix
end
local function roundDefPrecision(in_num, factor)
-- rounds out_num with significant figures of in_num (default precision)
local out_num = in_num * factor
if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN
return out_num
end
-- first, count digits after decimal mark, handling cases like '12.345e6'
local exponent, prec
local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
-- significant figures
local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001
local out_bracket = in_bracket * out_num / in_num
out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001
-- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound)
return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket
end
-- format data type quantity
local function printDatatypeQuantity(data, parameters)
local amount = data.amount
amount = mw.ustring.gsub(amount, "%+", "")
local suffix = ""
local conv_amount, conv_suffix
if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then
local unit_id = data.unit
unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1)
if string.sub(unit_id, 1, 1) == "Q" then
suffix = getUnit(amount, unit_id, parameters)
local convert_to
if parameters.convert == "default" or parameters.convert == "default2" then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if exist and units.convert_default and next(units.convert_default) ~= nil then
convert_to = units.convert_default[unit_id]
end
elseif string.sub(parameters.convert or '', 1, 1) == "Q" then
convert_to = parameters.convert
elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then
convert_to = 'Q11574' -- seconds
end
if convert_to and convert_to ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
}
if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount))
conv_amount = math.floor(tonumber(amount_f) + 0.5)
else
local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit
table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit
for _, conv in ipairs(conversions) do
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then
conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount))
break
end
end
end
end
if conv_amount then
conv_suffix = getUnit(conv_amount, convert_to, parameters)
end
elseif parameters.convert == 'M' then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if wiki.langcode == parameters.lang[1]
and exist and units.convert2M and type(units.convert2M) == "function"
then
conv_amount, conv_suffix = units.convert2M(amount)
conv_suffix = (conv_suffix or "").. suffix
elseif tonumber(amount) > 10^8 then
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. mw.text.trim(suffix)
end
end
if conv_amount and parameters.formatting == 'raw' then
amount = conv_amount
suffix = ""
conv_amount = nil
end
end
end
local lang_obj = mw.language.new(parameters.lang[1])
local sortkey = string.format("%019d", tonumber(amount) * 1000)
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == 'duration' then
return lang_obj:formatDuration(sec)
elseif parameters.formatting == 'durationm:s' then
local mm = math.floor(sec / 60)
local ss = sec - (mm * 60)
return string.format("%02d:%02d", mm, ss)
else -- durationhms or durationh:m:s
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals
local duration = ''
for i, v in ipairs(intervals) do
if parameters.formatting == 'durationh:m:s' then
if i == 1 and sec2table[v] then
duration = duration .. sec2table[v] .. ":"
elseif i == 2 then
duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":"
elseif i == 3 then
local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0))
duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str
end
elseif sec2table[v] then
duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "")
end
end
return duration
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id))
elseif parameters.formatting ~= 'raw' then
if parameters.numformat then
amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount)))
else
amount = lang_obj:formatNum(tonumber(amount))
end
end
if conv_amount then
local conv_sortkey = string.format("%019d", conv_amount * 1000)
conv_amount = lang_obj:formatNum(conv_amount)
if parameters.convert == 'default2' then
return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey
else
return conv_amount .. conv_suffix, conv_sortkey
end
elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern
amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount})
end
return amount .. suffix, sortkey
end
-- format data type time
local function printDatatypeTime(data, parameters)
-- Dates and times are stored in ISO 8601 format
local timestamp = data.time
if parameters.formatting == "raw" then
return timestamp, timestamp
end
local post_format
local calendar_add = ""
local precision = data.precision or 11
if string.sub(timestamp, 1, 1) == '-' then
post_format = i18n.datetime["bc"]
elseif string.sub(timestamp, 2, 3) == '00' then
post_format = i18n.datetime["ad"]
elseif precision > 8 then
-- calendar model
local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"}
local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2]
if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian")
or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian")
then
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end
local function formatTime(form, stamp)
local pattern
if type(form) == "function" then
pattern = form(stamp)
else
pattern = form
end
stamp = tostring(stamp)
if mw.ustring.find(pattern, "$1") then
return mw.ustring.gsub(pattern, "$1", stamp)
elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0
stamp = '+' .. string.sub(stamp, 2)
elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number
stamp = string.format("%04d", stamp)
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
end
local function postFormat(t)
if post_format and mw.ustring.find(post_format, "$1") then
return mw.ustring.gsub(post_format, "$1", t)
end
return t
end
local intyear = tonumber(string.match(timestamp, "[+-](%d+)"))
local ret = ""
if precision <= 5 then -- precision is 10000 years or more
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = formatTime(i18n.datetime[precision], y2)
if post_format == i18n.datetime["bc"] then
ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
local ret_number = string.match(ret, "%d+")
if ret_number ~= nil then
ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number)))
end
elseif precision == 6 or precision == 7 then -- millennia or centuries
local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1
ret = formatTime(i18n.datetime[precision], card)
ret = postFormat(ret)
elseif precision == 8 then -- decades
local card = math.floor(math.abs(intyear) / 10) * 10
ret = formatTime(i18n.datetime[8], card)
ret = postFormat(ret)
elseif intyear > 9999 then -- not a valid timestamp
return
elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year
ret = formatTime(i18n.datetime[9], intyear)
ret = postFormat(ret) .. calendar_add
elseif precision == 10 then -- month
ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month
ret = postFormat(ret) .. calendar_add
else -- precision 11, day
ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp)
ret = postFormat(ret) .. calendar_add
end
return ret, timestamp
end
-- format data value wikibase-entityid with data types wikibase-item or wikibase-property
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local entity_page = 'Special:EntityPage/' .. entity_id
local label, lang = getLabelByLangs(entity_id, parameters.lang)
local sitelink = mw.wikibase.getSitelink(entity_id)
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.gender == 'feminineform' then
labelcase = feminineForm(entity_id, lang) or labelcase
end
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
if labelcase == nil and i18n.qidlabels == false then
return
end
local ret1, ret2
if parameter == 'label' then
ret1 = labelcase or entity_id
ret2 = labelcase or entity_id
elseif parameter == 'sitelink' then
ret1 = (sitelink or 'd:' .. entity_page)
ret2 = sitelink or entity_id
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id)
ret1 = expandBraces(ret1, parameter)
ret2 = labelcase or entity_id
else
if parameter == "ucfirst" or parameter == "ucinternallink" then
if labelcase and lang then
labelcase = mw.language.new(lang):ucfirst(labelcase)
end
-- only first of a list, reset formatting for next ones
if parameter == "ucinterlanllink" then
parameters.formatting = 'internallink'
else
parameters.formatting = nil -- default format
end
end
if sitelink then
ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]'
ret2 = labelcase
elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then
ret1 = '[[' .. label .. '|' .. labelcase .. ']]'
ret2 = labelcase
else
ret1 = '[[d:' .. entity_page .. '|' .. (labelcase or entity_id) .. ']]'
ret2 = labelcase or entity_id
end
end
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
-- format data type wikibase-lexeme
local function printDatatypeLexeme(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local lemmas = mw.wikibase.getEntity(entity_id):getLemmas()
if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then
return
end
local ret = '[[d:Special:EntityPage/' .. entity_id .. '|' .. lemmas[1][1] .. ']]'
if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then
ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>"
end
return ret, entity_id
end
-- format data type monolingualtext
local function printDatatypeMonolingual(data, parameters)
-- data fields: language [string], text [string]
local valid_lang = {[parameters.lang[1]] = true, ["mul"] = true}
if parameters.list == "lang" and not valid_lang[data["language"]] then
return
elseif parameters.list == "notlang" and valid_lang[data["language"]] then
return
elseif parameters.formatting == "language" or parameters.formatting == "text" then
return data[parameters.formatting]
end
local result = data["text"]
valid_lang = {[wiki.langcode] = true, ["mul"] = true}
if not valid_lang[data["language"]] then
result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]})
end
if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then
-- output format defined with $text, $language
result = mw.ustring.gsub(parameters.formatting, '$text', result)
result = mw.ustring.gsub(result, '$language', data["language"])
end
return result
end
local function getSnakValue(snak, parameters)
parameters.editbridge = false
if snak.snaktype == 'value' then -- see Special:ListDatatypes
-- data value string
if snak.datatype == "string" then
parameters.editbridge = true -- Wikidata Bridge currently only for string values
return printDatatypeString(snak.datavalue.value, parameters)
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "tabular-data" then
return printDatatypeTabular(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
elseif snak.datatype == "external-id" then
return printDatatypeExternal(snak.datavalue.value, parameters)
elseif snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- data types other than string value
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
if i18n.suppress[snak.datavalue.value.id] then
return
end
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'wikibase-lexeme' then
return printDatatypeLexeme(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
elseif snak.datatype == "globe-coordinate" then
return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting)
elseif snak.datatype == "quantity" then
return printDatatypeQuantity(snak.datavalue.value, parameters)
elseif snak.datatype == "time" then
return printDatatypeTime(snak.datavalue.value, parameters)
end
elseif snak.snaktype == 'novalue' then
if parameters.formatting == 'raw' or parameters.shownovalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw' or parameters.showsomevalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
return mw.wikibase.renderSnak(snak)
end
local function printError(key)
return '<span class="error">' .. i18n.errors[key] .. '</span>'
end
local function getQualifierSnak(claim, qualifierId, parameters)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then
if qualifier[1].datatype == "monolingualtext" then
-- iterate over monolingualtext qualifiers to get languages
local qual_lang, qual_mul
for idx in pairs(qualifier) do
qual_lang = getSnak(qualifier[idx], {"datavalue", "value", "language"})
if qual_lang == parameters.lang[1] then
return qualifier[idx] -- return local language if found
elseif qual_lang == "mul" then
qual_mul = qualifier[idx]
end
end
return qual_mul -- else return multilingual
elseif parameters.list then
return qualifier
else
return qualifier[1]
end
end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameters)
local snak, error = getQualifierSnak(claim, qualifierId, parameters)
if not snak then
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.listmax)
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
if maxvals and maxvals == #result then break end
end
return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1]
else -- a property or a qualifier
return getSnakValue(snak, parameters)
end
end
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local value, sortkey, valueraw = {}, {}, {}
local parent_raw, value_text
if qids[1] == parameters.property then
parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
for idx, p_qid in ipairs(parent_qids) do
local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2])
if parent_claims[1] then
value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters)
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
if value[1] then
value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction)
end
return value_text, sortkey[1], valueraw[1]
end
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not (parameters.references or parameters.onlysourced) then
return '', false
end
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
local notproperref = {
["P143"] = true, -- imported from
["P3452"] = true, -- inferred from
["P887"] = true, -- based on heuristic
["P4656"] = true -- Wikimedia import URL
}
local result = {}
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
local refs = {}
local validref = true
local ref_id
-- traverse through all parts of the current reference
for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do
for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do
if notproperref[snakkey] then -- not a proper reference
validref = false
break
end
end
if validref then
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
if snakval[snakidx].datatype == 'external-id' then
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '')
else
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '')
end
end
refs[snakkey] = refparts
refparts = nil
if snakkey == "P248" then -- stated in
ref_id = getSnak(snakval, {1, "datavalue", "value", "id"})
end
end
end
-- fill missing values with parent item
if ref_id then
local function refParent(qid, pid, formatting)
local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"})
return snak and getSnakValue(snak, {formatting=formatting, lang=lang})
end
refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author
refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work
refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher
refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date
refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in
refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s)
refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue
refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN
refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI
end
-- get title of local templates for citing references
local template_web = mw.wikibase.getSitelink('Q5637226') or ""
template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front
local template_journal = mw.wikibase.getSitelink('Q5624899') or ""
template_journal = mw.text.split(template_journal, ":")[2]
local citeParams = {}
if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then
-- if both "reference URL" and "title" (or "stated in") are present, then use cite web template
citeParams[i18n['cite']['url']] = refs['P854']
if refs['P248'] and refs['P1476'] == nil then
citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]")
else
citeParams[i18n['cite']['title']] = refs['P1476']
citeParams[i18n['cite']['website']] = refs['P248']
end
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['publisher']] = refs['P123']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['access-date']] = refs['P813']
citeParams[i18n['cite']['archive-url']] = refs['P1065']
citeParams[i18n['cite']['archive-date']] = refs['P2960']
citeParams[i18n['cite']['quote']] = refs['P1683']
refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams}
elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then
-- if both "published in" and "title" (or "stated in") are present, then use cite journal template
citeParams[i18n['cite']['work']] = refs['P1433']
citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248']
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['issue']] = refs['P433']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['issn']] = refs['P236']
citeParams[i18n['cite']['doi']] = refs['P356']
refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams}
elseif validref then
-- raw ouput
local snaksorder = claim.references[ref]["snaks-order"]
local function indexed(a)
for _, b in ipairs(snaksorder) do
if b == a then return true end
end
return false
end
for k, _ in pairs(refs or {}) do
if not indexed(k) then
table.insert(snaksorder, k)
end
end
local italics = "''"
local ref_label
for _, k in ipairs(snaksorder) do
if refs[k] then
refparts = refparts and refparts .. " " or ""
ref_label = case('infoboxlabel', getLabelByLangs(k, lang) or '')
refparts = refparts .. mw.ustring.gsub(ref_label, "^%l", mw.ustring.upper) .. ": "
refparts = refparts .. italics .. refs[k] .. italics .. "."
italics = ""
end
end
end
if refparts then
local ref_name = claim.references[ref].hash
result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name})
if maxrefs and maxrefs == #result then break end
end
end
if #result > 0 then
if parameters.references then
if isSet(i18n.categoryref) then
result[#result + 1] = "[[" ..i18n.categoryref .. "]]"
end
return table.concat(result), true
else
return '', true
end
end
return '', false
end
-- Set lists of filtered values
local function setFilterLists(num_qual, args)
local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}}
for i = 0, num_qual do
for k, _ in pairs(lists) do
if isSet(args[k .. i]) then
lists[k][tostring(i)] = {}
local pattern = 'Q%d+'
if string.sub(args[k .. i], 1, 1) ~= 'Q' then
pattern = '[^%p%s]+'
end
for q in string.gmatch(args[k .. i], pattern) do
lists[k][tostring(i)][q] = true
end
end
end
end
return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue']
end
local function tableParameters(args, parameters, column)
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
column_params.case = args["case" .. column]
end
return column_params
end
local function getEntityId(args, pargs, unnamed)
pargs = pargs or {}
local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil)
if not isSet(id) then
id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil)
end
if isSet(id) then
if string.find(id, ":") then -- remove prefix as Property:Pid
id = mw.text.split(id, ":")[2]
end
else
id = mw.wikibase.getEntityIdForCurrentPage()
end
return id
end
local function getArg(value, default, aliases)
if type(value) == 'boolean' then return value
elseif value == "false" or value == "no" then return false
elseif value == "true" or value == "yes" then return true
elseif value and aliases and aliases[value] then return aliases[value]
elseif isSet(value) then return value
elseif default then return default
else return nil
end
end
-- Main function claim ---------------------------------------------
-- on debug console use: =p.claim{item="Q...", property="P...", ...}
function p.claim(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local is_sandbox = isSet(pargs.sandbox)
if not required and is_sandbox then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame)
end
--If a value is already set, use it
if isSet(args.value) then
if args.value == 'NONE' then
return
else
return args.value
end
end
-- arguments
local parameters = {}
parameters.id = getEntityId(args, pargs)
if parameters.id == nil then return end
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))
local i = 2
while isSet(args["qualifier" .. i]) do
qualifierId[i] = string.upper(args["qualifier" .. i])
i = i + 1
end
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.numformat = getArg(args.numformat)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.listmax = args.listmax
parameters.listrank = getArg(args.listrank)
if type(parameters.list) == "number" then -- backwards compatibility
parameters.listmax = parameters.listmax or parameters.list
parameters.list = true
elseif parameters.list == "bestrank" then
parameters.listrank = parameters.listrank or "bestrank"
parameters.list = true
end
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.showsomevalue = getArg(args.showsomevalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator = getArg(args.qseparator, parameters.separator)
parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction)
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references = getArg(args.references, false)
parameters.onlysourced = getArg(args.onlysourced, false)
local showerrors = args.showerrors
local default = args.default
if default then showerrors = nil end
parameters.lang = findLang(args.lang)
if parameters.formatting == "raw" then
parameters.editicon, parameters.labelicon = false, false
else
parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand
end
-- fetch property
local claims = {}
local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang'
for p in string.gmatch(parameters.property, 'P[%d/P]+') do -- P123 or P45/P67
if string.find(p, ".+/.+") then
local props = mw.text.split(p, "/")
local claims_child = {}
claims_child = getStatements(parameters.id, props[1], bestrank)
if #claims_child > 0 then
local parent_id, _, _ = getValueOfClaim(claims_child[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
if string.sub(parent_id or '', 1, 1) == "Q" then
claims = getStatements(parent_id, props[2], bestrank)
if #claims > 0 then
parameters.property = props[1]
break
end
end
end
else
claims = getStatements(parameters.id, p, bestrank)
if #claims > 0 then
parameters.property = p
break
end
end
end
if #claims == 0 then
local ret = showerrors and printError("property-not-found") or default
return ret, args.query == 'num' and 0 or ''
end
-- defaults for table
local preformat, postformat = "", ""
local whitelisted = false
local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {}
if parameters.formatting == "table" then
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain())
parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator)
if not rowformat then
rowformat = "$0 ($1"
i = 2
while qualifierId[i] do
rowformat = rowformat .. ", $" .. i
i = i + 1
end
rowformat = rowformat .. ")"
elseif mw.ustring.find(rowformat, "^[*#]") then
parameters.separator = "</li><li>"
parameters.conjunction = "</li><li>"
if mw.ustring.match(rowformat, "^[*#]") == "*" then
preformat = "<ul><li>"
postformat = "</li></ul>"
else
preformat = "<ol><li>"
postformat = "</li></ol>"
end
rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "")
end
-- set lists of filtered values
whitelist, blacklist, ignorevalue, selectvalue = setFilterLists(#qualifierId, args)
local next = next
if next(whitelist) ~= nil then whitelisted = true end
end
-- set feminine case if gender is requested
local itemgender = args.itemgender
local idgender
if itemgender then
if string.match(itemgender, "^P%d+$") then
local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"})
if snak_id then
idgender = snak_id
end
elseif string.match(itemgender, "^Q%d+$") then
idgender = itemgender
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
gender_requested = true
elseif parameters.formatting == "table" then
for i=0, #qualifierId do
if args["case" .. i] and args["case" .. i] == "gender" then
gender_requested = true
break
end
end
end
if gender_requested then
if feminineGender(idgender or parameters.id) then
parameters.gender = "feminineform"
end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result, result2, result_query
local error
if parameters.list or parameters.formatting == "table" then
-- convert LF to line feed, <br /> may not work on some cases
parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator
parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction
-- i18n separators
parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()
parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain())
-- iterate over all elements and return their value (if existing)
local value, valueq
local sortkey, sortkeyq
local values = {}
local sortkeys = {}
local refs = {}
local rowlist = {} -- rows to list with whitelist or blacklist
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
local reference = {}
if not whitelisted then rowlist[idx] = true end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0")
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
if whitelist["0"] or blacklist["0"] then
local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang})
if whitelist["0"] and whitelist["0"][valueraw or ""] then
rowlist[#values] = true
elseif blacklist["0"] and blacklist["0"][valueraw or ""] then
rowlist[#values] = false
end
end
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j)
local valueq, sortkeyq, valueraw
if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw
valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params)
else
for q in mw.text.gsplit(qual, '%s*OR%s*') do
if string.find(q, ".+/.+") then
valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params)
elseif string.find(q, "^/.+") then
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
-- only first value of a property as alternative to a qualifier
-- multiple values may not be related to a given raw of the table
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
else
valueq, sortkeyq, _ = getValueOfClaim(claim, q, params)
end
if valueq then
qual = q
break
end
end
end
values[#values]["col" .. j] = valueq
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang, ["list"]=params.list})
if valueq then
if whitelist[j] then
for k, v in pairs(whitelist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = true
end
end
elseif blacklist[j] then
for k, v in pairs(blacklist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = false
end
end
elseif ignorevalue[j] then
for k, v in pairs(ignorevalue[j]) do
if v and string.find(valueq, k, 1, true) then
values[#values]["col" .. j] = nil
end
end
elseif selectvalue[j] then
local selected
for k, v in pairs(selectvalue[j]) do
if v and string.find(valueq, k, 1, true) then
selected = true
end
end
if selected == nil then
values[#values]["col" .. j] = nil
end
end
end
end
end
end
else
value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters)
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
end
if not value and showerrors then value = error end
if value then
if (parameters.references or parameters.onlysourced) and claim.references then
reference = claim.references
end
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
sortkeys[#sortkeys]["col0"] = sortkey or value
end
end
-- sort and format results
sortindices = {}
for idx in pairs(values) do
sortindices[#sortindices + 1] = idx
end
if sorting_col then
local sorting_table = mw.text.split(sorting_col, '%D+')
local comparator = function(a, b)
local valuea, valueb
local i = 1
while valuea == valueb and i <= #sorting_table do
valuea = sortkeys[a]["col" .. sorting_table[i]] or ''
valueb = sortkeys[b]["col" .. sorting_table[i]] or ''
i = i + 1
end
if sorting_up then
return valueb > valuea
end
return valueb < valuea
end
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.listmax)
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters)
value = valuerow["col0"]
if parameters.formatting == "table" then
if not rowlist[sortindices[idx]] then
value = nil
else
local rowformatting = rowformat .. "$" -- fake end character added for easy gsub
value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value})
value = mw.ustring.gsub(value, "$R0", reference) -- add reference
for i, _ in ipairs(qualifierId) do
local valueq = valuerow["col" .. i]
if args["rowsubformat" .. i] and isSet(valueq) then
-- add fake end character $
-- gsub $i not followed by a number so $1 doesn't match $10, $11...
-- remove fake end character
valueq = captureEscapes(valueq)
valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1")
valueq = string.sub(valueq, 1, -2)
rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1")
end
valueq = valueq and captureEscapes(valueq) or ''
value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1")
end
value = string.sub(value, 1, -2) -- remove fake end character
value = expandBraces(value, rowformatting)
end
elseif value then
value = expandBraces(value, parameters.formatting)
value = value .. reference
end
if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
break
end
end
end
if args.query == 'num' then
result_query = #result
end
if #result > 0 then
if parameters.formatting == 'table' then
result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element
end
result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat
else
result = ''
end
else
-- return first element
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result then
local ref, valid_ref = getReferences(claim, parameters)
if parameters.onlysourced and valid_ref == false then
result = nil
else
result = result .. ref
end
end
if args.query == 'num' then result_query = result and 1 or 0 end
end
if isSet(result) then
if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then
-- add edit icon, except table added previously and except explicit no-icon internal flag
result = result .. addEditIcon(parameters)
end
else
if showerrors then result = error else result = default end
end
if args.query == 'untranslated' and required and not is_sandbox then
result_query = untranslated
end
return result, result_query or ''
end
-- Local functions for getParentValues -----------------------
local function uc_first(word)
if word == nil then return end
return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2)
end
local function getPropertyValue(id, property, parameter, langs, labelicon, case)
local snaks = mw.wikibase.getBestStatements(id, property)
local mysnak = getSnak(snaks, {1, "mainsnak"})
if mysnak == nil then
return
end
local entity_id
local result = '-' -- default for 'no value'
if mysnak.datavalue then
entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id'])
result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case})
end
return entity_id, result
end
local function getParentObjects(id,
prop_format,
label_format,
languages,
propertySupString,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
grammatical_case,
include_self)
local propertySups = mw.text.split(propertySupString, '[^P%d]')
local maxloop = 10
if upto_number then
maxloop = upto_number
elseif next(upto_label) or next(upto_value) then
maxloop = 50
end
local labels_filter = next(label_show)
local result = {}
local id_value = id
for iter = 1, maxloop do
local link, label, labelwicon, linktext, id_label
for _, propertySup in pairs(propertySups) do
local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case)
if _id_value and _link then id_value = _id_value; link = _link break end
end
if not id_value or not link then break end
if propertyLink then
_, linktext = getPropertyValue(id_value, propertyLink, "label", languages)
if linktext then
link = mw.ustring.gsub(link, "%[%[(.*)%|.+%]%]", "[[%1|" .. linktext .. "]]")
end
end
id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel")
if labelicon0 then
_, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
else
labelwicon = label
end
if labels_filter == nil or (label_show[id_label] or label_show[label]) then
result[#result + 1] = {labelwicon, link}
label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found
end
if upto_label[id_label] or upto_label[label] or upto_value[id_value] then
break
end
end
if last_only then
result = {result[#result]}
end
if include_self then
local label_self, link_self
_, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
link_self, _ = getLabelByLangs(id, languages)
table.insert(result, 1, {label_self, link_self})
end
return result
end
local function parentObjectsToString(result,
rowformat,
cascade,
sorting)
local ret = {}
local first = 1
local last = #result
local iter = 1
if sorting == "-1" then first = #result; last = 1; iter = -1 end
for i = first, last, iter do
local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]})
ret[#ret + 1] = expandBraces(rowtext, rowformat)
end
if cascade then
local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left"
local suffix = ""
for i = 1, #ret do
ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i]
suffix = suffix .. '</li></ul>'
end
ret[#ret] = ret[#ret] .. suffix
end
return ret
end
-- Returns pairs of parent label and property value fetching a recursive tree
function p.getParentValues(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame)
end
local id = getEntityId(args, pargs)
if id == nil then return end
local languages = findLang(args.lang)
local propertySup = getArg(args.property, "P131") --administrative entity
local propertyLabel = getArg(args.label, "P31") --instance
local propertyLink = getArg(args.valuetext)
local property_format = getArg(args.formatting)
local label_format = getArg(args.labelformat, "label")
local upto_number = getArg(args.upto)
local last_only = getArg(args.last_only, false)
local editicon, labelicon = setIcons(args.editicon, pargs.editicon)
local include_self = getArg(args.include_self, false)
local case = getArg(args.case)
local upto_label = {}
for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do
upto_label[q] = true
end
if type(tonumber(upto_number)) == "number" then
upto_number = tonumber(upto_number)
elseif type(upto_number) == 'string' then
upto_number = nil
require(wiki.module_title .. '/debug').track('upto') -- replace upto by uptolabelid
end
local upto_value = {}
for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do
upto_value[q] = true
end
local label_show = {}
for q in string.gmatch(args.showlabelid or '', 'Q%d+') do
label_show[q] = true
end
for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do
if v ~= '' then
label_show[uc_first(v)] = true
require(wiki.module_title .. '/debug').track('labelshow') -- replace labelshow by showlabelid
end
end
local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end
local labelicon0, labelicon1 = labelicon, labelicon
if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then
labelicon0 = false
end
local result = getParentObjects(id,
property_format,
label_format,
languages,
propertySup,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
case,
include_self)
if #result == 0 then return end
local separator = args.separator; if not isSet(separator) then separator = "<br />" end
local sorting = args.sorting; if sorting == "" then sorting = nil end
local cascade = (args.cascade == "true" or args.cascade == "yes")
local ret = parentObjectsToString(result,
rowformat,
cascade,
sorting)
ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages})
return mw.text.listToText(ret, separator, separator)
end
-- Link with a parent label --------------------
function p.linkWithParentLabel(frame)
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame)
end
local args = {}
if frame.args then
for k, v in pairs(frame.args) do -- metatable
args[k] = v
end
else
args = frame -- via require
end
if isSet(args.value) then
return args.value
end
-- get id value of property/qualifier
local largs = mw.clone(args)
largs.list = tonumber(args.list) and args.list or true
largs.formatting = "raw"
largs.separator = "/·/"
largs.editicon = false
local items_list, _ = p.claim(largs)
if not isSet(items_list) then return end
local items_table = mw.text.split(items_list, "/·/", true)
-- get internal link of property/qualifier
if isSet(args.formatting) then
largs.formatting = nil -- default link if defined with any value
else
largs.formatting = "internallink"
end
local link_list, _ = p.claim(largs)
local link_table = mw.text.split(link_list, "/·/", true)
-- get label of parent property
local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"})
if parent_claim == 'monolingualtext' then
largs.formatting = nil
largs.list = 'lang'
else
largs.formatting = "label"
largs.list = false
end
largs.property = args.parent
largs.qualifier = nil
for i, v in ipairs(items_table) do
largs.item = v
local link_label, _ = p.claim(largs)
if isSet(link_label) then
link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
args.editicon, _ = setIcons(args.editicon, pargs.editicon)
args.id = getEntityId(args, pargs)
args.lang = findLang(args.lang)
return mw.text.listToText(link_table) .. addEditIcon(args)
end
-- Calculate number of years old ----------------------------
function p.yearsOld(frame)
if not required and frame.args and isSet(frame:getParent().args.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame)
end
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return end
local lang = mw.language.new('en')
local function getBestDate(id, prop)
local mainsnak = getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak"})
if mainsnak and mainsnak.snaktype then
if mainsnak.snaktype == "somevalue" then
return {time = nil, precision = 0}
elseif mainsnak.snaktype == "value" then
return getSnak(mainsnak, {"datavalue", "value"})
end
end
return {time = nil, precision = nil}
end
local birth = getBestDate(id, 'P569')
if birth.time == nil or birth.precision < 8 then
return
end
local death = getBestDate(id, 'P570')
if death.precision and death.precision < 8 then -- includes somevalue
return
elseif death.time == nil then
death = {time = lang:formatDate('c'), precision = 11} -- current date
end
local dates = {}
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "-(%d%d)-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "-(%d%d)-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
for i, d in ipairs(dates) do
if d.precision == 10 then -- month
d.min.day = 1
local timestamp = string.format("%04d", tostring(math.abs(d.max.year)))
.. string.format("%02d", tostring(d.max.month))
.. "01"
d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day"))
elseif d.precision < 10 then -- year or decade
d.min.day = 1
d.min.month = 1
d.max.day = 31
d.max.month = 12
if d.precision == 8 then -- decade
d.max.year = d.max.year + 9
end
end
end
local function age(d1, d2)
local years = d2.year - d1.year
if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then
years = years - 1
end
if d2.year > 0 and d1.year < 0 then
years = years - 1 -- no year 0
end
return years
end
local old_min = age(dates[1].max, dates[2].min)
local old_max = age(dates[1].min, dates[2].max)
if old_max > 200 then
require(wiki.module_title .. '/debug').track('200yo')
end
local old, old_expr
if old_min == 0 and old_max == 0 then
old = "< 1"
old_max = 1 -- expression in singular
elseif old_min == old_max then
old = old_min
else
old = old_min .. "/" .. old_max
end
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo
local yo_pl = {}
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"]
end
if not isSet(yo_pl[2]) then
local yo_label, _ = getLabelByLangs('Q24564698', langs)
yo_pl = {yo_label, yo_label}
end
yo = mw.language.new(langs[1]):plural(old_max, yo_pl)
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
else
old_expr = old .. ' ' .. yo
end
elseif args.formatting then
old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting)
else
old_expr = old
end
return old_expr
end
-- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked.
function p.getLabel(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame)
end
local id = getEntityId(args, pargs, 1)
if id == nil then return end
local languages = findLang(args.lang)
local labelicon = false
if mw.wikibase.isValidEntityId(id) then
_, labelicon = setIcons(args.editicon, pargs.editicon)
end
local label_icon = ''
local label, lang
if args.label then
label = args.label
else
-- exceptions or labels fixed
local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1]))
if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then
label = labels.infoboxLabelsFromId[id]
end
if label == nil then
label, lang = getLabelByLangs(id, languages)
if label then
if isSet(args.itemgender) then
if feminineGender(args.itemgender) then
label = feminineForm(id, lang) or label
end
local _, items_g = string.gsub(args.itemgender, "Q%d+", "")
if not isSet(args.case) and items_g > 1 then
args.case = "plural"
end
end
label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize
if args.case then
label = case(args.case, label, lang)
end
end
label_icon = addLabelIcon(id, lang, languages[1], labelicon)
end
end
local linked = args.linked
local ret2 = required and untranslated or ''
if isSet(linked) and linked ~= "no" then
local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id)
return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2
else
return (label or id) .. label_icon, ret2
end
end
function p.sitelinks(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
-- arguments
local param = {}
param.id = getEntityId(args, pargs)
if param.id == nil then return end
param.project = getArg(args.project)
param.site = getArg(args.site)
param.sitelang = getArg(args.sitelang)
param.show = getArg(args.formatting, '[[$w:$l:$t|$s:$t]] $i')
param.sep = getArg(args.separator, ', ')
-- fetch sitelinks
local sitelinks_obj = mw.wikibase.getEntity(param.id).sitelinks
local slinks = {} -- do some clean up (commonswiki > commons) and add some data
local iw = {['wikipedia'] = 'w', ['wikibooks'] = 'b', ['wikinews'] = 'n', ['wikiquote'] = 'q',
['wikisource'] = 's', ['wikiversity'] = 'v', ['wikivoyage'] = 'voy', ['wiktionary'] = 'wikt', ['commons'] = 'c',
['meta'] = 'm', ['mediawiki'] = 'mw', ['species'] = 'species', ['wikidata'] = 'd', ['wikifunctions'] = 'f'}
for slink, sdata in pairs(sitelinks_obj) do
-- langcode + wiki, wikibooks, wikinews, wikiquote, wikisource, wikiversity, wikivoyage, wiktionary
local s_lang = string.match(slink, '(%l+)wik[it]')
local s_project = string.match(slink, 'wik[it]%l*')
if slink == 'commonswiki' or slink == 'metawiki' or slink == 'mediawikiwiki'
or slink == 'specieswiki' or slink == 'wikidatawiki' or slink == 'wikifunctionswiki'
then
s_project = string.sub(slink, 1, -5) -- remove -wiki
slinks[s_project] = {['lang'] = 'und', ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiki' then -- restore project full name
slinks[slink] = {['lang'] = s_lang, ['project'] = 'wikipedia', ['iw'] = 'w', ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiktionary' then -- use short site name
s_project = string.sub(slink, 1, -7)
slinks[s_project] = {['lang'] = s_lang, ['project'] = 'wiktionary', ['iw'] = 'wikt', ['title'] = sdata.title, ['badges'] = sdata.badges}
else
slinks[slink] = {['lang'] = s_lang, ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
end
end
-- select requested project, site, sitelang
local slinks_req = {}
if not (param.project or param.site or param.sitelang) then
slinks_req = slinks
else
for pr in string.gmatch(param.project or '', '%l+') do -- lowercase letters, skip separators
for sl, sd in pairs(slinks) do
if sd.project == pr then
slinks_req[sl] = sd
end
end
end
for s in string.gmatch(param.site or '', '%l+') do
for sl, sd in pairs(slinks) do
if sl == s then
slinks_req[sl] = sd
end
end
end
for l in string.gmatch(param.sitelang or '', '%l+') do
for sl, sd in pairs(slinks) do
if sd.lang == l then
slinks_req[sl] = sd
end
end
end
end
-- sort table
local sites_sorted = {}
for sitex in pairs(slinks_req) do
sites_sorted[#sites_sorted + 1] = sitex
end
local sort_project_lang = function(a, b)
local key_a = slinks_req[a].project .. slinks_req[a].lang
local key_b = slinks_req[b].project .. slinks_req[b].lang
return key_a < key_b
end
table.sort(sites_sorted, sort_project_lang)
-- format output
local showtext = {}
local shownum, showbnum = 0, 0
for _, sl in ipairs(sites_sorted) do
local sd = slinks_req[sl]
local show = param.show -- default '[[$w:$l:$t|$s:$t]] $i' iw:lang:title, site:title icon, also $p project
show = string.gsub(show, '$w', sd.iw)
show = string.gsub(show, '$p', sd.project)
if sd.lang == 'und' then
show = string.gsub(show, '$l:?', '')
else
show = string.gsub(show, '$l', sd.lang)
end
show = string.gsub(show, '$t', sd.title)
show = string.gsub(show, '$s', sl)
if next(sd.badges) then
show = string.gsub(show, '$i', '[[File:Article de qualité.svg|15x15px]]')
showbnum = showbnum + 1
else
show = string.gsub(show, ' ?$i', '')
end
if show ~= param.show then
table.insert(showtext, show)
end
shownum = shownum + 1
end
local output
if string.find(param.show, '$[nb]') then
output = string.gsub(param.show, '$n', shownum) -- number of sites
output = string.gsub(output, '$b', showbnum) -- number of badges
else
output = table.concat(showtext, param.sep)
end
return output
end
-- Utilities -----------------------------
-- See also module ../debug.
-- Copied from Module:Wikibase
function p.getSiteLink(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs, 1)
if id == nil then return end
return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or ''))
end
-- Helper function for the default language code used
function p.lang(frame)
local lang = frame and frame.args[1] -- nil via require
return findLang(lang)[1]
end
-- Number of statements
function p.numStatements(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return 0 end
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) then
local largs = {}
for k, v in pairs(pargs) do
largs[k] = v
end
for k, v in pairs(args) do
largs[k] = v
end
largs.query = 'num'
_, num = p.claim(largs)
return num
elseif args[2] then -- qualifier
local qual = mw.text.trim(args[2])
local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'}
if values then
num = mw.text.split(values, '/·/')
end
else
num = mw.wikibase.getBestStatements(id, prop)
end
return #num
end
-- Returns true if property datavalue is found excluding novalue/somevalue
function p.validProperty(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local item = getEntityId(args, pargs)
if item == nil then return end
local property = mw.text.trim(args[1])
local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"})
return prop_data and true or nil
end
function p.editAtWikidata(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local value = isSet(args[1])
if value then return end
local param = {}
param.id = getEntityId(args, pargs)
param.property = args.property
param.lang = findLang(args.lang)
param.editicon, _ = setIcons(args.editicon)
return addEditIcon(param)
end
function p.formatNum(frame)
local num = tonumber(mw.text.trim(frame.args[1]))
local lang = findLang(mw.text.trim(frame.args[2]))
return mw.language.new(lang[1]):formatNum(num)
end
return p
sm7parkcwgf1anzton8sp5gyg8mkt0m
142940
142935
2026-06-26T10:59:30Z
آیات محراج
11062
142940
Scribunto
text/plain
-- version 20260211 from master @cawiki
-- changes from previous version:
-- new function sitelinks
local p = {}
-- Initialization of variables --------------------
local i18n = { -- internationalisation at subpage /i18n
["errors"] = {
["property-not-found"] = "Property not found.",
["qualifier-not-found"] = "Qualifier not found.",
},
["datetime"] = {
-- $1 is a placeholder for the actual number
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = "$1 BCE", -- how print negative years
["ad"] = "$1", -- how print 1st century AD dates
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100000 years", -- precision: hundred thousand years; thousand separators added afterwards
[5] = "$10000 years", -- precision: ten thousand years; thousand separators added afterwards
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs
},
["years-old"] = {"", ""}, -- year(s) old, as in magic word {PLURAL:$1|singular|plural}
-- two values for most languages, up to six values for some languages, examples:
-- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages
-- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic
-- see documentation of PLURAL in your language at [[mw:Help:Magic words#Localization 2]]
["cite"] = { -- cite parameters
["title"] = "title",
["author"] = "author",
["date"] = "date",
["pages"] = "pages",
["language"] = "language",
-- cite web parameters
["url"] = "url",
["website"] = "website",
["access-date"] = "access-date",
["archive-url"] = "archive-url",
["archive-date"] = "archive-date",
["publisher"] = "publisher",
["quote"] = "quote",
-- cite journal parameters
["work"] = "work",
["issue"] = "issue",
["issn"] = "issn",
["doi"] = "doi"
},
-- default local wiki settings
["addpencil"] = false, -- adds a pencil icon linked to Wikidata statement, planned to overwrite by Wikidata Bridge
["categorylabels"] = "", -- Category:Pages with Wikidata labels not translated (void for no local category)
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}, -- additional fallback language codes
["suppressids"] = {}, -- list of Qid values to suppress
["qidlabels"] = true -- show labels as Qid if no fallback translation is available
}
local cases = {} -- functions for local grammatical cases defined at subpage /i18n
local required = ... -- variadic arguments from require function
local wiki =
{
langcode = mw.language.getContentLanguage().code,
module_title = required or mw.getCurrentFrame():getTitle()
}
local untranslated -- used in infobox modules: nil or true
local _ -- variable for unused returned values, avoiding globals
-- Module local functions --------------------------------------------
-- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0
local function tableMerge(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n(lang)
local exist, res = pcall(require, wiki.module_title .. "/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
cases = res.cases
end
if lang ~= wiki.langcode then
exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang)
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
tableMerge(cases, res.cases)
end
end
i18n.suppress = {}
for _, id in ipairs(i18n.suppressids) do
i18n.suppress[id] = true
end
end
-- Table of language codes: requested or default and its fallbacks
local function findLang(langcode)
if mw.language.isKnownLanguageTag(langcode or '') == false then
local cframe = mw.getCurrentFrame()
local pframe = cframe:getParent()
langcode = pframe and pframe.args.lang
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:callParserFunction('int', {'lang'})
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
langcode = wiki.langcode
end
end
end
loadI18n(langcode)
local languages = mw.language.getFallbacksFor(langcode)
table.insert(languages, 1, langcode)
table.insert(languages, 2, "mul") -- see [[d:Help:Default values for labels and aliases]]
if langcode == wiki.langcode then
for _, l in ipairs(i18n.addfallback) do
table.insert(languages, l)
end
end
return languages
end
-- Argument is 'set' when it exists (not nil) or when it is not an empty string.
local function isSet(var)
return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == ''))
end
-- Set local case to a label
local function case(localcase, label, ...)
if not isSet(label) then return label end
if type(localcase) == "function" then
return localcase(label)
elseif localcase == "smallcaps" then
return '<span style="font-variant: small-caps;">' .. label .. '</span>'
elseif cases[localcase] then
return cases[localcase](label, ...)
end
return label
end
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if not ret then return end
ret = ret[v]
end
return ret
end
-- get label with an array of fallback languages
-- mw.wikibase.getLabelWithLang uses lang mul as last fallback, not the first one
local function getLabelByLangs(id, languages)
local label, lang
for _, l in ipairs(languages) do
label = mw.wikibase.getLabelByLang(id, l)
if label then
lang = (l == "mul" and languages[1] or l)
break
end
end
return label, lang
end
-- getBestStatements if bestrank=true, else getAllStatements with no deprecated
local function getStatements(entityId, property, bestrank)
local claims = {}
if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end
if bestrank then
claims = mw.wikibase.getBestStatements(entityId, property)
else
local allclaims = mw.wikibase.getAllStatements(entityId, property)
for _, c in ipairs(allclaims) do
if c.rank ~= "deprecated" then
table.insert(claims, c)
end
end
end
return claims
end
-- Is gender femenine? true or false
local function feminineGender(id)
for idn in string.gmatch(id, "Q%d+") do
local claims = mw.wikibase.getBestStatements(idn or mw.wikibase.getEntityIdForCurrentPage(),'P21')
local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"})
if gender_id == nil or not (gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445") then
-- not female, transgender female or female organism
return false
end
end
return true
end
-- Fetch female form of label
local function feminineForm(id, lang)
local feminine_claims = getStatements(id, 'P2521')
for _, feminine_claim in ipairs(feminine_claims) do
if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then
return feminine_claim.mainsnak.datavalue.value.text
end
end
end
-- Add an icon for no label in requested language
local function addLabelIcon(label_id, lang, uselang, icon)
local ret_lang, ret_icon = '', ''
if icon then
if lang and lang ~= uselang then
ret_lang = " <sup>(" .. lang .. ")</sup>"
end
if label_id and (lang == nil or lang ~= uselang) then
local namespace = ''
if string.sub(label_id, 1, 1) == 'P' then
namespace = 'Property:'
end
ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|class=skin-invert|"
.. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain()
.. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]"
untranslated = true
end
if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then
ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]')
end
end
return ret_lang .. ret_icon
end
-- editicon values: true/false (no=false), right, void defaults to i18n.addpencil
-- labelicon only by parameter
local function setIcons(arg, parg)
local val = arg == nil and parg or arg
local edit_icon, label_icon
if not isSet(val) then
edit_icon, label_icon = i18n.addpencil, true
elseif val == false or val == "false" or val == "no" then
edit_icon, label_icon = false, false
else
edit_icon, label_icon = val, true
end
return edit_icon, label_icon
end
-- Add an icon for editing a statement with requirements for future Wikidata Bridge
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or ''
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>'
.. "[[File:Arbcom ru editing.svg|10px|baseline|"
.. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata')
.. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]"
.. "</span>"
if isSet(i18n.categoryprop) then
ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]"
end
end
return ret
end
-- add edit icon to the last element of a table
local function addEditIconTable(thetable, parameters)
if #thetable == 0 or parameters.editicon == false then
return thetable
end
local last_element = thetable[#thetable]
local the_icon = addEditIcon(parameters)
-- add it before last html closing tags
local tags = ''
local rev_element = string.reverse(last_element)
for tag in string.gmatch(rev_element, '(>%l+/<)') do
if string.match(rev_element, '^' .. tags .. tag) then
tags = tags .. tag
else
break
end
end
local last_tags = string.reverse(tags)
local offset = string.find(last_element, last_tags .. '$')
if offset then
thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags
else
thetable[#thetable] = last_element .. the_icon
end
return thetable
end
-- Escape Lua captures
local function captureEscapes(text)
return mw.ustring.gsub(text, "(%%%d)", "%%%1")
end
-- expandTemplate or callParserFunction
local function expandBraces(text, formatting)
if text == nil or formatting == nil then return text end
-- only expand braces if provided in argument, not included in value as in Q1164668
if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end
if type(text) ~= "string" then
text = tostring(text)
end
for braces in mw.ustring.gmatch(text, "{{(.-)}}") do
local parts = mw.text.split(braces, "|")
local title_part = parts[1]
local parameters = {}
for i = 2, #parts do
local subparts = mw.ustring.find(parts[i], "=")
if subparts then
local param_name = mw.ustring.sub(parts[i], 1, subparts - 1)
local param_value = mw.ustring.sub(parts[i], subparts + 1, -1)
-- reconstruct broken links by parts
if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then
parameters[param_name] = param_value
local part_next = i + 1
while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do
parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next]
part_next = part_next + 1
end
else
parameters[param_name] = param_value
end
elseif not mw.ustring.find(parts[i], "]]", 1, true) then
table.insert(parameters, parts[i])
end
end
local braces_expanded
if mw.ustring.find(title_part, ":")
and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template:
then
braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters}
elseif title_part == "!" then
-- template:! may be deleted locally, now provided by MediaWiki
-- although it works, it raises a Lua internal error
braces_expanded = "|"
else
braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters}
end
braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters
braces_expanded = captureEscapes(braces_expanded)
text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded)
end
return text
end
-- format data type math
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
end
-- format data type musical-notation
local function printDatatypeMusical(data, formatting)
local attr = {}
if formatting == 'sound' then
attr.sound = 1
end
return mw.getCurrentFrame():extensionTag('score', data, attr)
end
-- format data type string
local function printDatatypeString(data, parameters)
if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting)
elseif parameters.case then
return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id))
end
local data_number = string.match(data, "^%d+")
if data_number then -- sort key by initial number and remaining string
local sortkey = string.format("%019d", data_number * 1000)
return data, sortkey .. string.sub(data, #data_number + 1)
end
return data
end
-- format data type tabular-data
local function printDatatypeTabular(data, parameters)
local icon
if parameters.formatting == 'raw' then
icon = "no-icon"
data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data
end
return printDatatypeString(data, parameters), icon
end
-- format data type url
local function printDatatypeUrl(data, parameters)
if parameters.formatting == 'weblink' then
local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/')
local label = string.gsub(label_parts[3], '^www%.', '')
if #label_parts > 3 then
label = label .. '…'
end
return '[' .. data .. ' ' .. label .. ']'
end
return printDatatypeString(data, parameters)
end
-- format data type external-id
local function printDatatypeExternal(data, parameters)
if parameters.formatting == 'externalid' then
local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL
local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"})
if p_link_pattern then
local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data})
return '[' .. p_link .. ' ' .. data .. ']'
end
end
return printDatatypeString(data, parameters)
end
-- format data type commonsMedia and geo-shape
local function printDatatypeMedia(data, parameters)
local icon
if not string.find((parameters.formatting or ''), '$1', 1, true) then
icon = "no-icon"
if not string.find(data, '^Data:') then
data = mw.uri.encode(data, 'PATH') -- encode special characters in filename
end
end
return printDatatypeString(data, parameters), icon
end
-- format data type globe-coordinate
local function printDatatypeCoordinate(data, formatting)
local function globes(globe_id)
-- parameter globe in coordinates accepted by GeoHack
-- see [[w:en:Special:PrefixIndex/Template:GeoTemplate]]
local globes = {['Q3343'] = 'ariel', ['Q3134'] = 'callisto', ['Q596'] = 'ceres',
['Q6604'] = 'charon', ['Q7548'] = 'deimos', ['Q15040'] = 'dione', ['Q2'] = 'earth',
['Q3303'] = 'enceladus', ['Q3143'] = 'europa', ['Q3169'] = 'ganymede',
['Q15037'] = 'hyperion', ['Q17958'] = 'iapetus', ['Q3123'] = 'io',
['Q319'] = 'jupiter', ['Q111'] = 'mars', ['Q308'] = 'mercury', ['Q15034'] = 'mimas',
['Q3352'] = 'miranda', ['Q405'] = 'moon', ['Q3332'] = 'oberon', ['Q7547'] = 'phobos',
['Q17975'] = 'phoebe', ['Q339'] = 'pluto', ['Q15050'] = 'rhea', ['Q15047'] = 'tethys',
['Q2565'] = 'titan', ['Q3322'] = 'titania', ['Q3359'] = 'triton',
['Q3338'] = 'umbriel', ['Q313']='venus', ['Q3030']='vesta'}
return globes[globe_id]
end
local function roundPrecision(num, prec)
if prec == nil or prec <= 0 then return num end
local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001
return math.floor(num / sig + 0.5) * sig
end
local precision = data.precision
local latitude = roundPrecision(data.latitude, precision)
local longitude = roundPrecision(data.longitude, precision)
if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then
local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude})
if string.find(formatting, '$globe', 1, true) then
local myglobe = 'earth'
if isSet(data.globe) then
local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2
myglobe = globes(globenum) or 'earth'
end
ret = mw.ustring.gsub(ret, '$globe', myglobe)
end
return expandBraces(ret, formatting)
elseif formatting == 'latitude' then
return latitude, "no-icon"
elseif formatting == 'longitude' then
return longitude, "no-icon"
elseif formatting == 'dimension' then
return data.dimension, "no-icon"
else --default formatting='globe'
if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then
return 'earth', "no-icon"
else
local globenum = mw.text.split(data.globe, 'entity/')[2]
return globes(globenum) or globenum, "no-icon"
end
end
end
-- Local functions for data value quantity
local function unitSymbol(id, lang) -- get unit symbol or code
local unit_symbol = ''
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true)
end
if unit_symbol == '' then
-- fetch it
local claims = mw.wikibase.getBestStatements(id, 'P5061')
if #claims > 0 then
local langclaims = {}
for _, snak in ipairs(claims) do
local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"})
if snak_language and not langclaims[snak_language] then -- just the first one by language
langclaims[snak_language] = snak.mainsnak.datavalue.value.text
end
end
for _, l in ipairs(lang) do
if langclaims[l] then
return langclaims[l]
end
end
end
end
return unit_symbol
end
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]"
else
suffix = unit_symbol
end
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit label
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
if string.sub(parameters.formatting or '', -6) == "linked" then
suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]"
end
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
end
end
if suffix ~= '' then
suffix = ' ' .. suffix
end
return suffix
end
local function roundDefPrecision(in_num, factor)
-- rounds out_num with significant figures of in_num (default precision)
local out_num = in_num * factor
if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN
return out_num
end
-- first, count digits after decimal mark, handling cases like '12.345e6'
local exponent, prec
local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
-- significant figures
local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001
local out_bracket = in_bracket * out_num / in_num
out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001
-- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound)
return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket
end
-- format data type quantity
local function printDatatypeQuantity(data, parameters)
local amount = data.amount
amount = mw.ustring.gsub(amount, "%+", "")
local suffix = ""
local conv_amount, conv_suffix
if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then
local unit_id = data.unit
unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1)
if string.sub(unit_id, 1, 1) == "Q" then
suffix = getUnit(amount, unit_id, parameters)
local convert_to
if parameters.convert == "default" or parameters.convert == "default2" then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if exist and units.convert_default and next(units.convert_default) ~= nil then
convert_to = units.convert_default[unit_id]
end
elseif string.sub(parameters.convert or '', 1, 1) == "Q" then
convert_to = parameters.convert
elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then
convert_to = 'Q11574' -- seconds
end
if convert_to and convert_to ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
}
if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount))
conv_amount = math.floor(tonumber(amount_f) + 0.5)
else
local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit
table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit
for _, conv in ipairs(conversions) do
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then
conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount))
break
end
end
end
end
if conv_amount then
conv_suffix = getUnit(conv_amount, convert_to, parameters)
end
elseif parameters.convert == 'M' then
local exist, units = pcall(require, wiki.module_title .. "/Units")
if wiki.langcode == parameters.lang[1]
and exist and units.convert2M and type(units.convert2M) == "function"
then
conv_amount, conv_suffix = units.convert2M(amount)
conv_suffix = (conv_suffix or "").. suffix
elseif tonumber(amount) > 10^8 then
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. mw.text.trim(suffix)
end
end
if conv_amount and parameters.formatting == 'raw' then
amount = conv_amount
suffix = ""
conv_amount = nil
end
end
end
local lang_obj = mw.language.new(parameters.lang[1])
local sortkey = string.format("%019d", tonumber(amount) * 1000)
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == 'duration' then
return lang_obj:formatDuration(sec)
elseif parameters.formatting == 'durationm:s' then
local mm = math.floor(sec / 60)
local ss = sec - (mm * 60)
return string.format("%02d:%02d", mm, ss)
else -- durationhms or durationh:m:s
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals
local duration = ''
for i, v in ipairs(intervals) do
if parameters.formatting == 'durationh:m:s' then
if i == 1 and sec2table[v] then
duration = duration .. sec2table[v] .. ":"
elseif i == 2 then
duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":"
elseif i == 3 then
local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0))
duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str
end
elseif sec2table[v] then
duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "")
end
end
return duration
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id))
elseif parameters.formatting ~= 'raw' then
if parameters.numformat then
amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount)))
else
amount = lang_obj:formatNum(tonumber(amount))
end
end
if conv_amount then
local conv_sortkey = string.format("%019d", conv_amount * 1000)
conv_amount = lang_obj:formatNum(conv_amount)
if parameters.convert == 'default2' then
return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey
else
return conv_amount .. conv_suffix, conv_sortkey
end
elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern
amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount})
end
return amount .. suffix, sortkey
end
-- format data type time
local function printDatatypeTime(data, parameters)
-- Dates and times are stored in ISO 8601 format
local timestamp = data.time
if parameters.formatting == "raw" then
return timestamp, timestamp
end
local post_format
local calendar_add = ""
local precision = data.precision or 11
if string.sub(timestamp, 1, 1) == '-' then
post_format = i18n.datetime["bc"]
elseif string.sub(timestamp, 2, 3) == '00' then
post_format = i18n.datetime["ad"]
elseif precision > 8 then
-- calendar model
local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"}
local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2]
if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian")
or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian")
then
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end
local function formatTime(form, stamp)
local pattern
if type(form) == "function" then
pattern = form(stamp)
else
pattern = form
end
stamp = tostring(stamp)
if mw.ustring.find(pattern, "$1") then
return mw.ustring.gsub(pattern, "$1", stamp)
elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0
stamp = '+' .. string.sub(stamp, 2)
elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number
stamp = string.format("%04d", stamp)
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
end
local function postFormat(t)
if post_format and mw.ustring.find(post_format, "$1") then
return mw.ustring.gsub(post_format, "$1", t)
end
return t
end
local intyear = tonumber(string.match(timestamp, "[+-](%d+)"))
local ret = ""
if precision <= 5 then -- precision is 10000 years or more
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = formatTime(i18n.datetime[precision], y2)
if post_format == i18n.datetime["bc"] then
ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
local ret_number = string.match(ret, "%d+")
if ret_number ~= nil then
ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number)))
end
elseif precision == 6 or precision == 7 then -- millennia or centuries
local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1
ret = formatTime(i18n.datetime[precision], card)
ret = postFormat(ret)
elseif precision == 8 then -- decades
local card = math.floor(math.abs(intyear) / 10) * 10
ret = formatTime(i18n.datetime[8], card)
ret = postFormat(ret)
elseif intyear > 9999 then -- not a valid timestamp
return
elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year
ret = formatTime(i18n.datetime[9], intyear)
ret = postFormat(ret) .. calendar_add
elseif precision == 10 then -- month
ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month
ret = postFormat(ret) .. calendar_add
else -- precision 11, day
ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp)
ret = postFormat(ret) .. calendar_add
end
return ret, timestamp
end
-- format data value wikibase-entityid with data types wikibase-item or wikibase-property
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local entity_page = 'Special:EntityPage/' .. entity_id
local label, lang = getLabelByLangs(entity_id, parameters.lang)
local sitelink = mw.wikibase.getSitelink(entity_id)
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.gender == 'feminineform' then
labelcase = feminineForm(entity_id, lang) or labelcase
end
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
if labelcase == nil and i18n.qidlabels == false then
return
end
local ret1, ret2
if parameter == 'label' then
ret1 = labelcase or entity_id
ret2 = labelcase or entity_id
elseif parameter == 'sitelink' then
ret1 = (sitelink or 'd:' .. entity_page)
ret2 = sitelink or entity_id
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id)
ret1 = expandBraces(ret1, parameter)
ret2 = labelcase or entity_id
else
if parameter == "ucfirst" or parameter == "ucinternallink" then
if labelcase and lang then
labelcase = mw.language.new(lang):ucfirst(labelcase)
end
-- only first of a list, reset formatting for next ones
if parameter == "ucinterlanllink" then
parameters.formatting = 'internallink'
else
parameters.formatting = nil -- default format
end
end
if sitelink then
ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]'
ret2 = labelcase
elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then
ret1 = '[[' .. label .. '|' .. labelcase .. ']]'
ret2 = labelcase
else
ret1 = '[[d:' .. entity_page .. '|' .. (labelcase or entity_id) .. ']]'
ret2 = labelcase or entity_id
end
end
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
-- format data type wikibase-lexeme
local function printDatatypeLexeme(data, parameters)
local entity_id = data['id']
if parameters.formatting == 'raw' then
return entity_id, entity_id
end
local lemmas = mw.wikibase.getEntity(entity_id):getLemmas()
if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then
return
end
local ret = '[[d:Special:EntityPage/' .. entity_id .. '|' .. lemmas[1][1] .. ']]'
if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then
ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>"
end
return ret, entity_id
end
-- format data type monolingualtext
local function printDatatypeMonolingual(data, parameters)
-- data fields: language [string], text [string]
local valid_lang = {[parameters.lang[1]] = true, ["mul"] = true}
if parameters.list == "lang" and not valid_lang[data["language"]] then
return
elseif parameters.list == "notlang" and valid_lang[data["language"]] then
return
elseif parameters.formatting == "language" or parameters.formatting == "text" then
return data[parameters.formatting]
end
local result = data["text"]
valid_lang = {[wiki.langcode] = true, ["mul"] = true}
if not valid_lang[data["language"]] then
result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]})
end
if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then
-- output format defined with $text, $language
result = mw.ustring.gsub(parameters.formatting, '$text', result)
result = mw.ustring.gsub(result, '$language', data["language"])
end
return result
end
local function getSnakValue(snak, parameters)
parameters.editbridge = false
if snak.snaktype == 'value' then -- see Special:ListDatatypes
-- data value string
if snak.datatype == "string" then
parameters.editbridge = true -- Wikidata Bridge currently only for string values
return printDatatypeString(snak.datavalue.value, parameters)
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "tabular-data" then
return printDatatypeTabular(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
elseif snak.datatype == "external-id" then
return printDatatypeExternal(snak.datavalue.value, parameters)
elseif snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- data types other than string value
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
if i18n.suppress[snak.datavalue.value.id] then
return
end
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'wikibase-lexeme' then
return printDatatypeLexeme(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
elseif snak.datatype == "globe-coordinate" then
return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting)
elseif snak.datatype == "quantity" then
return printDatatypeQuantity(snak.datavalue.value, parameters)
elseif snak.datatype == "time" then
return printDatatypeTime(snak.datavalue.value, parameters)
end
elseif snak.snaktype == 'novalue' then
if parameters.formatting == 'raw' or parameters.shownovalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw' or parameters.showsomevalue == false then return end
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
return mw.wikibase.renderSnak(snak)
end
local function printError(key)
return '<span class="error">' .. i18n.errors[key] .. '</span>'
end
local function getQualifierSnak(claim, qualifierId, parameters)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then
if qualifier[1].datatype == "monolingualtext" then
-- iterate over monolingualtext qualifiers to get languages
local qual_lang, qual_mul
for idx in pairs(qualifier) do
qual_lang = getSnak(qualifier[idx], {"datavalue", "value", "language"})
if qual_lang == parameters.lang[1] then
return qualifier[idx] -- return local language if found
elseif qual_lang == "mul" then
qual_mul = qualifier[idx]
end
end
return qual_mul -- else return multilingual
elseif parameters.list then
return qualifier
else
return qualifier[1]
end
end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameters)
local snak, error = getQualifierSnak(claim, qualifierId, parameters)
if not snak then
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.listmax)
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
if maxvals and maxvals == #result then break end
end
return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1]
else -- a property or a qualifier
return getSnakValue(snak, parameters)
end
end
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local value, sortkey, valueraw = {}, {}, {}
local parent_raw, value_text
if qids[1] == parameters.property then
parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
for idx, p_qid in ipairs(parent_qids) do
local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2])
if parent_claims[1] then
value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters)
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
if value[1] then
value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction)
end
return value_text, sortkey[1], valueraw[1]
end
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not (parameters.references or parameters.onlysourced) then
return '', false
end
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
local notproperref = {
["P143"] = true, -- imported from
["P3452"] = true, -- inferred from
["P887"] = true, -- based on heuristic
["P4656"] = true -- Wikimedia import URL
}
local result = {}
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
local refs = {}
local validref = true
local ref_id
-- traverse through all parts of the current reference
for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do
for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do
if notproperref[snakkey] then -- not a proper reference
validref = false
break
end
end
if validref then
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
if snakval[snakidx].datatype == 'external-id' then
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '')
else
refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '')
end
end
refs[snakkey] = refparts
refparts = nil
if snakkey == "P248" then -- stated in
ref_id = getSnak(snakval, {1, "datavalue", "value", "id"})
end
end
end
-- fill missing values with parent item
if ref_id then
local function refParent(qid, pid, formatting)
local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"})
return snak and getSnakValue(snak, {formatting=formatting, lang=lang})
end
refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author
refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work
refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher
refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date
refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in
refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s)
refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue
refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN
refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI
end
-- get title of local templates for citing references
local template_web = mw.wikibase.getSitelink('Q5637226') or ""
template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front
local template_journal = mw.wikibase.getSitelink('Q5624899') or ""
template_journal = mw.text.split(template_journal, ":")[2]
local citeParams = {}
if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then
-- if both "reference URL" and "title" (or "stated in") are present, then use cite web template
citeParams[i18n['cite']['url']] = refs['P854']
if refs['P248'] and refs['P1476'] == nil then
citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]")
else
citeParams[i18n['cite']['title']] = refs['P1476']
citeParams[i18n['cite']['website']] = refs['P248']
end
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['publisher']] = refs['P123']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['access-date']] = refs['P813']
citeParams[i18n['cite']['archive-url']] = refs['P1065']
citeParams[i18n['cite']['archive-date']] = refs['P2960']
citeParams[i18n['cite']['quote']] = refs['P1683']
refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams}
elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then
-- if both "published in" and "title" (or "stated in") are present, then use cite journal template
citeParams[i18n['cite']['work']] = refs['P1433']
citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248']
citeParams[i18n['cite']['author']] = refs['P50']
citeParams[i18n['cite']['date']] = refs['P577']
citeParams[i18n['cite']['issue']] = refs['P433']
citeParams[i18n['cite']['pages']] = refs['P304']
citeParams[i18n['cite']['language']] = refs['P407']
citeParams[i18n['cite']['issn']] = refs['P236']
citeParams[i18n['cite']['doi']] = refs['P356']
refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams}
elseif validref then
-- raw ouput
local snaksorder = claim.references[ref]["snaks-order"]
local function indexed(a)
for _, b in ipairs(snaksorder) do
if b == a then return true end
end
return false
end
for k, _ in pairs(refs or {}) do
if not indexed(k) then
table.insert(snaksorder, k)
end
end
local italics = "''"
local ref_label
for _, k in ipairs(snaksorder) do
if refs[k] then
refparts = refparts and refparts .. " " or ""
ref_label = case('infoboxlabel', getLabelByLangs(k, lang) or '')
refparts = refparts .. mw.ustring.gsub(ref_label, "^%l", mw.ustring.upper) .. ": "
refparts = refparts .. italics .. refs[k] .. italics .. "."
italics = ""
end
end
end
if refparts then
local ref_name = claim.references[ref].hash
result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name})
if maxrefs and maxrefs == #result then break end
end
end
if #result > 0 then
if parameters.references then
if isSet(i18n.categoryref) then
result[#result + 1] = "[[" ..i18n.categoryref .. "]]"
end
return table.concat(result), true
else
return '', true
end
end
return '', false
end
-- Set lists of filtered values
local function setFilterLists(num_qual, args)
local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}}
for i = 0, num_qual do
for k, _ in pairs(lists) do
if isSet(args[k .. i]) then
lists[k][tostring(i)] = {}
local pattern = 'Q%d+'
if string.sub(args[k .. i], 1, 1) ~= 'Q' then
pattern = '[^%p%s]+'
end
for q in string.gmatch(args[k .. i], pattern) do
lists[k][tostring(i)][q] = true
end
end
end
end
return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue']
end
local function tableParameters(args, parameters, column)
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
column_params.case = args["case" .. column]
end
return column_params
end
local function getEntityId(args, pargs, unnamed)
pargs = pargs or {}
local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil)
if not isSet(id) then
id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil)
end
if isSet(id) then
if string.find(id, ":") then -- remove prefix as Property:Pid
id = mw.text.split(id, ":")[2]
end
else
id = mw.wikibase.getEntityIdForCurrentPage()
end
return id
end
local function getArg(value, default, aliases)
if type(value) == 'boolean' then return value
elseif value == "false" or value == "no" then return false
elseif value == "true" or value == "yes" then return true
elseif value and aliases and aliases[value] then return aliases[value]
elseif isSet(value) then return value
elseif default then return default
else return nil
end
end
-- Main function claim ---------------------------------------------
-- on debug console use: =p.claim{item="Q...", property="P...", ...}
function p.claim(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local is_sandbox = isSet(pargs.sandbox)
if not required and is_sandbox then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame)
end
--If a value is already set, use it
if isSet(args.value) then
if args.value == 'NONE' then
return
else
return args.value
end
end
-- arguments
local parameters = {}
parameters.id = getEntityId(args, pargs)
if parameters.id == nil then return end
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))
local i = 2
while isSet(args["qualifier" .. i]) do
qualifierId[i] = string.upper(args["qualifier" .. i])
i = i + 1
end
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.numformat = getArg(args.numformat)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.listmax = args.listmax
parameters.listrank = getArg(args.listrank)
if type(parameters.list) == "number" then -- backwards compatibility
parameters.listmax = parameters.listmax or parameters.list
parameters.list = true
elseif parameters.list == "bestrank" then
parameters.listrank = parameters.listrank or "bestrank"
parameters.list = true
end
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.showsomevalue = getArg(args.showsomevalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator = getArg(args.qseparator, parameters.separator)
parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction)
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references = getArg(args.references, false)
parameters.onlysourced = getArg(args.onlysourced, false)
local showerrors = args.showerrors
local default = args.default
if default then showerrors = nil end
parameters.lang = findLang(args.lang)
if parameters.formatting == "raw" then
parameters.editicon, parameters.labelicon = false, false
else
parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand
end
-- fetch property
local claims = {}
local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang'
for p in string.gmatch(parameters.property, 'P[%d/P]+') do -- P123 or P45/P67
if string.find(p, ".+/.+") then
local props = mw.text.split(p, "/")
local claims_child = {}
claims_child = getStatements(parameters.id, props[1], bestrank)
if #claims_child > 0 then
local parent_id, _, _ = getValueOfClaim(claims_child[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
if string.sub(parent_id or '', 1, 1) == "Q" then
claims = getStatements(parent_id, props[2], bestrank)
if #claims > 0 then
parameters.property = props[1]
break
end
end
end
else
claims = getStatements(parameters.id, p, bestrank)
if #claims > 0 then
parameters.property = p
break
end
end
end
if #claims == 0 then
local ret = showerrors and printError("property-not-found") or default
return ret, args.query == 'num' and 0 or ''
end
-- defaults for table
local preformat, postformat = "", ""
local whitelisted = false
local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {}
if parameters.formatting == "table" then
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain())
parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator)
if not rowformat then
rowformat = "$0 ($1"
i = 2
while qualifierId[i] do
rowformat = rowformat .. ", $" .. i
i = i + 1
end
rowformat = rowformat .. ")"
elseif mw.ustring.find(rowformat, "^[*#]") then
parameters.separator = "</li><li>"
parameters.conjunction = "</li><li>"
if mw.ustring.match(rowformat, "^[*#]") == "*" then
preformat = "<ul><li>"
postformat = "</li></ul>"
else
preformat = "<ol><li>"
postformat = "</li></ol>"
end
rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "")
end
-- set lists of filtered values
whitelist, blacklist, ignorevalue, selectvalue = setFilterLists(#qualifierId, args)
local next = next
if next(whitelist) ~= nil then whitelisted = true end
end
-- set feminine case if gender is requested
local itemgender = args.itemgender
local idgender
if itemgender then
if string.match(itemgender, "^P%d+$") then
local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"})
if snak_id then
idgender = snak_id
end
elseif string.match(itemgender, "^Q%d+$") then
idgender = itemgender
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
gender_requested = true
elseif parameters.formatting == "table" then
for i=0, #qualifierId do
if args["case" .. i] and args["case" .. i] == "gender" then
gender_requested = true
break
end
end
end
if gender_requested then
if feminineGender(idgender or parameters.id) then
parameters.gender = "feminineform"
end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result, result2, result_query
local error
if parameters.list or parameters.formatting == "table" then
-- convert LF to line feed, <br /> may not work on some cases
parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator
parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction
-- i18n separators
parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()
parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain())
-- iterate over all elements and return their value (if existing)
local value, valueq
local sortkey, sortkeyq
local values = {}
local sortkeys = {}
local refs = {}
local rowlist = {} -- rows to list with whitelist or blacklist
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
local reference = {}
if not whitelisted then rowlist[idx] = true end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0")
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
if whitelist["0"] or blacklist["0"] then
local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang})
if whitelist["0"] and whitelist["0"][valueraw or ""] then
rowlist[#values] = true
elseif blacklist["0"] and blacklist["0"][valueraw or ""] then
rowlist[#values] = false
end
end
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j)
local valueq, sortkeyq, valueraw
if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw
valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params)
else
for q in mw.text.gsplit(qual, '%s*OR%s*') do
if string.find(q, ".+/.+") then
valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params)
elseif string.find(q, "^/.+") then
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
-- only first value of a property as alternative to a qualifier
-- multiple values may not be related to a given raw of the table
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
else
valueq, sortkeyq, _ = getValueOfClaim(claim, q, params)
end
if valueq then
qual = q
break
end
end
end
values[#values]["col" .. j] = valueq
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang, ["list"]=params.list})
if valueq then
if whitelist[j] then
for k, v in pairs(whitelist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = true
end
end
elseif blacklist[j] then
for k, v in pairs(blacklist[j]) do
if v and string.find(valueq, k, 1, true) then
rowlist[#values] = false
end
end
elseif ignorevalue[j] then
for k, v in pairs(ignorevalue[j]) do
if v and string.find(valueq, k, 1, true) then
values[#values]["col" .. j] = nil
end
end
elseif selectvalue[j] then
local selected
for k, v in pairs(selectvalue[j]) do
if v and string.find(valueq, k, 1, true) then
selected = true
end
end
if selected == nil then
values[#values]["col" .. j] = nil
end
end
end
end
end
end
else
value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters)
values[#values + 1] = {}
sortkeys[#sortkeys + 1] = {}
refs[#refs + 1] = {}
end
if not value and showerrors then value = error end
if value then
if (parameters.references or parameters.onlysourced) and claim.references then
reference = claim.references
end
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
sortkeys[#sortkeys]["col0"] = sortkey or value
end
end
-- sort and format results
sortindices = {}
for idx in pairs(values) do
sortindices[#sortindices + 1] = idx
end
if sorting_col then
local sorting_table = mw.text.split(sorting_col, '%D+')
local comparator = function(a, b)
local valuea, valueb
local i = 1
while valuea == valueb and i <= #sorting_table do
valuea = sortkeys[a]["col" .. sorting_table[i]] or ''
valueb = sortkeys[b]["col" .. sorting_table[i]] or ''
i = i + 1
end
if sorting_up then
return valueb > valuea
end
return valueb < valuea
end
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.listmax)
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters)
value = valuerow["col0"]
if parameters.formatting == "table" then
if not rowlist[sortindices[idx]] then
value = nil
else
local rowformatting = rowformat .. "$" -- fake end character added for easy gsub
value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value})
value = mw.ustring.gsub(value, "$R0", reference) -- add reference
for i, _ in ipairs(qualifierId) do
local valueq = valuerow["col" .. i]
if args["rowsubformat" .. i] and isSet(valueq) then
-- add fake end character $
-- gsub $i not followed by a number so $1 doesn't match $10, $11...
-- remove fake end character
valueq = captureEscapes(valueq)
valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1")
valueq = string.sub(valueq, 1, -2)
rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1")
end
valueq = valueq and captureEscapes(valueq) or ''
value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1")
end
value = string.sub(value, 1, -2) -- remove fake end character
value = expandBraces(value, rowformatting)
end
elseif value then
value = expandBraces(value, parameters.formatting)
value = value .. reference
end
if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
break
end
end
end
if args.query == 'num' then
result_query = #result
end
if #result > 0 then
if parameters.formatting == 'table' then
result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element
end
result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat
else
result = ''
end
else
-- return first element
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result then
local ref, valid_ref = getReferences(claim, parameters)
if parameters.onlysourced and valid_ref == false then
result = nil
else
result = result .. ref
end
end
if args.query == 'num' then result_query = result and 1 or 0 end
end
if isSet(result) then
if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then
-- add edit icon, except table added previously and except explicit no-icon internal flag
result = result .. addEditIcon(parameters)
end
else
if showerrors then result = error else result = default end
end
if args.query == 'untranslated' and required and not is_sandbox then
result_query = untranslated
end
return result, result_query or ''
end
-- Local functions for getParentValues -----------------------
local function uc_first(word)
if word == nil then return end
return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2)
end
local function getPropertyValue(id, property, parameter, langs, labelicon, case)
local snaks = mw.wikibase.getBestStatements(id, property)
local mysnak = getSnak(snaks, {1, "mainsnak"})
if mysnak == nil then
return
end
local entity_id
local result = '-' -- default for 'no value'
if mysnak.datavalue then
entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id'])
result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case})
end
return entity_id, result
end
local function getParentObjects(id,
prop_format,
label_format,
languages,
propertySupString,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
grammatical_case,
include_self)
local propertySups = mw.text.split(propertySupString, '[^P%d]')
local maxloop = 10
if upto_number then
maxloop = upto_number
elseif next(upto_label) or next(upto_value) then
maxloop = 50
end
local labels_filter = next(label_show)
local result = {}
local id_value = id
for iter = 1, maxloop do
local link, label, labelwicon, linktext, id_label
for _, propertySup in pairs(propertySups) do
local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case)
if _id_value and _link then id_value = _id_value; link = _link break end
end
if not id_value or not link then break end
if propertyLink then
_, linktext = getPropertyValue(id_value, propertyLink, "label", languages)
if linktext then
link = mw.ustring.gsub(link, "%[%[(.*)%|.+%]%]", "[[%1|" .. linktext .. "]]")
end
end
id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel")
if labelicon0 then
_, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
else
labelwicon = label
end
if labels_filter == nil or (label_show[id_label] or label_show[label]) then
result[#result + 1] = {labelwicon, link}
label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found
end
if upto_label[id_label] or upto_label[label] or upto_value[id_value] then
break
end
end
if last_only then
result = {result[#result]}
end
if include_self then
local label_self, link_self
_, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel")
link_self, _ = getLabelByLangs(id, languages)
table.insert(result, 1, {label_self, link_self})
end
return result
end
local function parentObjectsToString(result,
rowformat,
cascade,
sorting)
local ret = {}
local first = 1
local last = #result
local iter = 1
if sorting == "-1" then first = #result; last = 1; iter = -1 end
for i = first, last, iter do
local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]})
ret[#ret + 1] = expandBraces(rowtext, rowformat)
end
if cascade then
local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left"
local suffix = ""
for i = 1, #ret do
ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i]
suffix = suffix .. '</li></ul>'
end
ret[#ret] = ret[#ret] .. suffix
end
return ret
end
-- Returns pairs of parent label and property value fetching a recursive tree
function p.getParentValues(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame)
end
local id = getEntityId(args, pargs)
if id == nil then return end
local languages = findLang(args.lang)
local propertySup = getArg(args.property, "P131") --administrative entity
local propertyLabel = getArg(args.label, "P31") --instance
local propertyLink = getArg(args.valuetext)
local property_format = getArg(args.formatting)
local label_format = getArg(args.labelformat, "label")
local upto_number = getArg(args.upto)
local last_only = getArg(args.last_only, false)
local editicon, labelicon = setIcons(args.editicon, pargs.editicon)
local include_self = getArg(args.include_self, false)
local case = getArg(args.case)
local upto_label = {}
for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do
upto_label[q] = true
end
if type(tonumber(upto_number)) == "number" then
upto_number = tonumber(upto_number)
elseif type(upto_number) == 'string' then
upto_number = nil
require(wiki.module_title .. '/debug').track('upto') -- replace upto by uptolabelid
end
local upto_value = {}
for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do
upto_value[q] = true
end
local label_show = {}
for q in string.gmatch(args.showlabelid or '', 'Q%d+') do
label_show[q] = true
end
for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do
if v ~= '' then
label_show[uc_first(v)] = true
require(wiki.module_title .. '/debug').track('labelshow') -- replace labelshow by showlabelid
end
end
local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end
local labelicon0, labelicon1 = labelicon, labelicon
if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then
labelicon0 = false
end
local result = getParentObjects(id,
property_format,
label_format,
languages,
propertySup,
propertyLabel,
propertyLink,
label_show,
labelicon0,
labelicon1,
upto_number,
upto_label,
upto_value,
last_only,
case,
include_self)
if #result == 0 then return end
local separator = args.separator; if not isSet(separator) then separator = "<br />" end
local sorting = args.sorting; if sorting == "" then sorting = nil end
local cascade = (args.cascade == "true" or args.cascade == "yes")
local ret = parentObjectsToString(result,
rowformat,
cascade,
sorting)
ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages})
return mw.text.listToText(ret, separator, separator)
end
-- Link with a parent label --------------------
function p.linkWithParentLabel(frame)
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame)
end
local args = {}
if frame.args then
for k, v in pairs(frame.args) do -- metatable
args[k] = v
end
else
args = frame -- via require
end
if isSet(args.value) then
return args.value
end
-- get id value of property/qualifier
local largs = mw.clone(args)
largs.list = tonumber(args.list) and args.list or true
largs.formatting = "raw"
largs.separator = "/·/"
largs.editicon = false
local items_list, _ = p.claim(largs)
if not isSet(items_list) then return end
local items_table = mw.text.split(items_list, "/·/", true)
-- get internal link of property/qualifier
if isSet(args.formatting) then
largs.formatting = nil -- default link if defined with any value
else
largs.formatting = "internallink"
end
local link_list, _ = p.claim(largs)
local link_table = mw.text.split(link_list, "/·/", true)
-- get label of parent property
local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"})
if parent_claim == 'monolingualtext' then
largs.formatting = nil
largs.list = 'lang'
else
largs.formatting = "label"
largs.list = false
end
largs.property = args.parent
largs.qualifier = nil
for i, v in ipairs(items_table) do
largs.item = v
local link_label, _ = p.claim(largs)
if isSet(link_label) then
link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
args.editicon, _ = setIcons(args.editicon, pargs.editicon)
args.id = getEntityId(args, pargs)
args.lang = findLang(args.lang)
return mw.text.listToText(link_table) .. addEditIcon(args)
end
-- Calculate number of years old ----------------------------
function p.yearsOld(frame)
if not required and frame.args and isSet(frame:getParent().args.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame)
end
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return end
local lang = mw.language.new('en')
local function getBestDate(id, prop)
local mainsnak = getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak"})
if mainsnak and mainsnak.snaktype then
if mainsnak.snaktype == "somevalue" then
return {time = nil, precision = 0}
elseif mainsnak.snaktype == "value" then
return getSnak(mainsnak, {"datavalue", "value"})
end
end
return {time = nil, precision = nil}
end
local birth = getBestDate(id, 'P569')
if birth.time == nil or birth.precision < 8 then
return
end
local death = getBestDate(id, 'P570')
if death.precision and death.precision < 8 then -- includes somevalue
return
elseif death.time == nil then
death = {time = lang:formatDate('c'), precision = 11} -- current date
end
local dates = {}
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "-(%d%d)-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "-(%d%d)-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
for i, d in ipairs(dates) do
if d.precision == 10 then -- month
d.min.day = 1
local timestamp = string.format("%04d", tostring(math.abs(d.max.year)))
.. string.format("%02d", tostring(d.max.month))
.. "01"
d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day"))
elseif d.precision < 10 then -- year or decade
d.min.day = 1
d.min.month = 1
d.max.day = 31
d.max.month = 12
if d.precision == 8 then -- decade
d.max.year = d.max.year + 9
end
end
end
local function age(d1, d2)
local years = d2.year - d1.year
if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then
years = years - 1
end
if d2.year > 0 and d1.year < 0 then
years = years - 1 -- no year 0
end
return years
end
local old_min = age(dates[1].max, dates[2].min)
local old_max = age(dates[1].min, dates[2].max)
if old_max > 200 then
require(wiki.module_title .. '/debug').track('200yo')
end
local old, old_expr
if old_min == 0 and old_max == 0 then
old = "< 1"
old_max = 1 -- expression in singular
elseif old_min == old_max then
old = old_min
else
old = old_min .. "/" .. old_max
end
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo
local yo_pl = {}
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"]
end
if not isSet(yo_pl[2]) then
local yo_label, _ = getLabelByLangs('Q24564698', langs)
yo_pl = {yo_label, yo_label}
end
yo = mw.language.new(langs[1]):plural(old_max, yo_pl)
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
else
old_expr = old .. ' ' .. yo
end
elseif args.formatting then
old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting)
else
old_expr = old
end
return old_expr
end
-- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked.
function p.getLabel(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
if not required and isSet(pargs.sandbox) then
return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame)
end
local id = getEntityId(args, pargs, 1)
if id == nil then return end
local languages = findLang(args.lang)
local labelicon = false
if mw.wikibase.isValidEntityId(id) then
_, labelicon = setIcons(args.editicon, pargs.editicon)
end
local label_icon = ''
local label, lang
if args.label then
label = args.label
else
-- exceptions or labels fixed
local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1]))
if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then
label = labels.infoboxLabelsFromId[id]
end
if label == nil then
label, lang = getLabelByLangs(id, languages)
if label then
if isSet(args.itemgender) then
if feminineGender(args.itemgender) then
label = feminineForm(id, lang) or label
end
local _, items_g = string.gsub(args.itemgender, "Q%d+", "")
if not isSet(args.case) and items_g > 1 then
args.case = "plural"
end
end
label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize
if args.case then
label = case(args.case, label, lang)
end
end
label_icon = addLabelIcon(id, lang, languages[1], labelicon)
end
end
local linked = args.linked
local ret2 = required and untranslated or ''
if isSet(linked) and linked ~= "no" then
local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id)
return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2
else
return (label or id) .. label_icon, ret2
end
end
function p.sitelinks(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
-- arguments
local param = {}
param.id = getEntityId(args, pargs)
if param.id == nil then return end
param.project = getArg(args.project)
param.site = getArg(args.site)
param.sitelang = getArg(args.sitelang)
param.show = getArg(args.formatting, '[[$w:$l:$t|$s:$t]] $i')
param.sep = getArg(args.separator, ', ')
-- fetch sitelinks
local sitelinks_obj = mw.wikibase.getEntity(param.id).sitelinks
local slinks = {} -- do some clean up (commonswiki > commons) and add some data
local iw = {['wikipedia'] = 'w', ['wikibooks'] = 'b', ['wikinews'] = 'n', ['wikiquote'] = 'q',
['wikisource'] = 's', ['wikiversity'] = 'v', ['wikivoyage'] = 'voy', ['wiktionary'] = 'wikt', ['commons'] = 'c',
['meta'] = 'm', ['mediawiki'] = 'mw', ['species'] = 'species', ['wikidata'] = 'd', ['wikifunctions'] = 'f'}
for slink, sdata in pairs(sitelinks_obj) do
-- langcode + wiki, wikibooks, wikinews, wikiquote, wikisource, wikiversity, wikivoyage, wiktionary
local s_lang = string.match(slink, '(%l+)wik[it]')
local s_project = string.match(slink, 'wik[it]%l*')
if slink == 'commonswiki' or slink == 'metawiki' or slink == 'mediawikiwiki'
or slink == 'specieswiki' or slink == 'wikidatawiki' or slink == 'wikifunctionswiki'
then
s_project = string.sub(slink, 1, -5) -- remove -wiki
slinks[s_project] = {['lang'] = 'und', ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiki' then -- restore project full name
slinks[slink] = {['lang'] = s_lang, ['project'] = 'wikipedia', ['iw'] = 'w', ['title'] = sdata.title, ['badges'] = sdata.badges}
elseif s_project == 'wiktionary' then -- use short site name
s_project = string.sub(slink, 1, -7)
slinks[s_project] = {['lang'] = s_lang, ['project'] = 'wiktionary', ['iw'] = 'wikt', ['title'] = sdata.title, ['badges'] = sdata.badges}
else
slinks[slink] = {['lang'] = s_lang, ['project'] = s_project, ['iw'] = iw[s_project], ['title'] = sdata.title, ['badges'] = sdata.badges}
end
end
-- select requested project, site, sitelang
local slinks_req = {}
if not (param.project or param.site or param.sitelang) then
slinks_req = slinks
else
for pr in string.gmatch(param.project or '', '%l+') do -- lowercase letters, skip separators
for sl, sd in pairs(slinks) do
if sd.project == pr then
slinks_req[sl] = sd
end
end
end
for s in string.gmatch(param.site or '', '%l+') do
for sl, sd in pairs(slinks) do
if sl == s then
slinks_req[sl] = sd
end
end
end
for l in string.gmatch(param.sitelang or '', '%l+') do
for sl, sd in pairs(slinks) do
if sd.lang == l then
slinks_req[sl] = sd
end
end
end
end
-- sort table
local sites_sorted = {}
for sitex in pairs(slinks_req) do
sites_sorted[#sites_sorted + 1] = sitex
end
local sort_project_lang = function(a, b)
local key_a = slinks_req[a].project .. slinks_req[a].lang
local key_b = slinks_req[b].project .. slinks_req[b].lang
return key_a < key_b
end
table.sort(sites_sorted, sort_project_lang)
-- format output
local showtext = {}
local shownum, showbnum = 0, 0
for _, sl in ipairs(sites_sorted) do
local sd = slinks_req[sl]
local show = param.show -- default '[[$w:$l:$t|$s:$t]] $i' iw:lang:title, site:title icon, also $p project
show = string.gsub(show, '$w', sd.iw)
show = string.gsub(show, '$p', sd.project)
if sd.lang == 'und' then
show = string.gsub(show, '$l:?', '')
else
show = string.gsub(show, '$l', sd.lang)
end
show = string.gsub(show, '$t', sd.title)
show = string.gsub(show, '$s', sl)
if next(sd.badges) then
show = string.gsub(show, '$i', '[[File:Article de qualité.svg|15x15px]]')
showbnum = showbnum + 1
else
show = string.gsub(show, ' ?$i', '')
end
if show ~= param.show then
table.insert(showtext, show)
end
shownum = shownum + 1
end
local output
if string.find(param.show, '$[nb]') then
output = string.gsub(param.show, '$n', shownum) -- number of sites
output = string.gsub(output, '$b', showbnum) -- number of badges
else
output = table.concat(showtext, param.sep)
end
return output
end
-- Utilities -----------------------------
-- See also module ../debug.
-- Copied from Module:Wikibase
function p.getSiteLink(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs, 1)
if id == nil then return end
return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or ''))
end
-- Helper function for the default language code used
function p.lang(frame)
local lang = frame and frame.args[1] -- nil via require
return findLang(lang)[1]
end
-- Number of statements
function p.numStatements(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local id = getEntityId(args, pargs)
if id == nil then return 0 end
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) then
local largs = {}
for k, v in pairs(pargs) do
largs[k] = v
end
for k, v in pairs(args) do
largs[k] = v
end
largs.query = 'num'
_, num = p.claim(largs)
return num
elseif args[2] then -- qualifier
local qual = mw.text.trim(args[2])
local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'}
if values then
num = mw.text.split(values, '/·/')
end
else
num = mw.wikibase.getBestStatements(id, prop)
end
return #num
end
-- Returns true if property datavalue is found excluding novalue/somevalue
function p.validProperty(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local item = getEntityId(args, pargs)
if item == nil then return end
local property = mw.text.trim(args[1])
local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"})
return prop_data and true or nil
end
function p.editAtWikidata(frame)
local args = frame.args or frame -- via invoke or require
local pargs = frame.args and frame:getParent().args or {}
local value = isSet(args[1])
if value then return end
local param = {}
param.id = getEntityId(args, pargs)
param.property = args.property
param.lang = findLang(args.lang)
param.editicon, _ = setIcons(args.editicon)
return addEditIcon(param)
end
function p.formatNum(frame)
local input = frame.args[1] or ""
local num = tonumber(mw.text.trim(input))
-- SAFETY NET: If the input isn't a valid number (or is empty),
-- just return the raw input to prevent the module from crashing.
if num == nil then
return input
end
local lang_input = frame.args[2] or ""
local lang = findLang(mw.text.trim(lang_input))
return mw.language.new(lang[1]):formatNum(num)
end
return p
bmuftpr1zsj56rnpleyf6abjlnjp6al
شیوام فائر والا
0
29118
142903
135817
2026-06-26T02:14:23Z
InternetArchiveBot
8158
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
142903
wikitext
text/x-wiki
{{Infobox person
| name = شیوام فائر والا
| image =
| caption = شیوام فائر والا
| birth_date = ۰۲ اپریل ۱۹۹۲
| birth_place = بھارت
| nationality = بھارتی
| education = بی ٹیک (کمپیوٹر سائنس)
| alma_mater = پیسفک یونیورسٹی، راجستھان
| occupation = آتش حفاظتی مشیر، تربیت کار، اثرانداز
| known_for = آتش حفاظتی بیداری تہٕ ڈیجیٹل تعلیم
| awards = بااثر بھارتی اعزاز ۲۰۲۴ (بہترین آتش حفاظتی مشیر تہٕ تربیت کار)
}}
'''شیوام فائر والا''' (پیدٲیش: ۰۲ اپریل ۱۹۹۲) اَکھ ہِندوستٲنؠ آتش حفاظتی ماہر، مشیر، تربیت کار تہٕ ڈیجیٹل مواد تیار کرن وال چھُ، یُس آتش حفاظتی تٲلیٖم تہٕ عوامی بیداری پھیلٲونہٕ مَنٛز سرگرم چھُ۔<ref>{{ویب حَوالہٕ|last=Team|first=Speeedy ai|title=Speeedy.ai — AI Influencer Discovery Platform|url=https://speeedy.ai/|access-date=2026-04-19|website=Speeedy.ai|language=en|archive-date=2025-11-16|archive-url=https://web.archive.org/web/20251116002943/https://speeedy.ai/|url-status=dead}}</ref><ref>{{ویب حَوالہٕ|date=2026-01-30|title=From Fire Sites to Reels: The 100-Day Journey of Fire Safety Influencer Shivam Firewala|url=https://www.hindustanmetro.com/from-fire-sites-to-reels-the-100-day-journey-of-fire-safety-influencer-shivam-firewala/|access-date=2026-04-19|language=en-US}}</ref>
== تعارف ==
شیوام فائر والا چھُ اَکھ جدید دور ہُنٛد آتش حفاظتی ماہر، یُس ڈیجیٹل ذریعن ہنٛد اِستِمال کٔرِتھ حفاظتی علم آسان تہٕ قابلِ عمل اندازس مَنٛز عام لوکن تام پہنچاون چھُ۔ تِم چھِ پیچیدہ حفاظتی خیالن کُن سادہ معلوماتس مَنٛز تبدیل کران۔<ref name=":0">{{ویب حَوالہٕ|title=IPL 2026: WATCH- SRH fan does “black magic” as Shivam Dube takes strike; rejoices when CSK batter is bowled next ball|url=https://circleofcricket.com/category/IPL/103073/ipl-2026-watch-srh-fan-does-black-magic-as-shivam-dube-takes-strike-rejoices-when-csk-batter-is-bowled-next-ball|access-date=2026-04-19|website=Circle Of Cricket|language=en}}</ref>
== پیشہ ورانہ زندگی ==
شیوام فائر والا چھُ بطور آتش حفاظتی مشیر تہٕ تربیت کار مختلف ادارن، صنعتن تہٕ عوامن کُن رہنمائی فراہم کران۔ تِمچو کام چھُ آگہٕ ہنٛد خطرن ہُنٛد شناخت، اِبتدٲیی ردِعمل تہٕ درست حفاظتی طریقن متعلق بیداری پیدا کرنہٕ۔<ref>{{ویب حَوالہٕ|last=ADMIN-APPLICATION-FACEBOOK|title=Social Media Content Creator Shivam Firewala Shares his Fire Safety Vision through his page Firechamps, creates a wave that inspires the mass|url=https://www.ideapreneurindia.com/2023/05/social-media-content-creator-shivam.html|access-date=2026-04-19|website=IdeapreneurIndia-Entrepreneur's Daily Dose}}</ref><ref>{{ویب حَوالہٕ|last=admin|date=2023-05-24|title=Social Media Content Creator Shivam Firewala Shares his Fire Safety Vision through his page Firechamps, creates a wave that inspires the mass|url=https://entrepreneurstreet.in/social-media-content-creator-shivam-firewala-shares-his-fire-safety-vision-through-his-page-firechamps-creates-a-wave-that-inspires-the-mass/|access-date=2026-04-19|website=Entrepreneur Street|language=en-US}}</ref><ref name=":1">{{ویب حَوالہٕ|last=Neo|first=Tender Tiger|title=Supply Of Firewall, Enterprise Subscription Security Protective Software Including Antivirus, Ms Office Software 2021, Ms Window 11 Pro, Ms Window 10 ProQty:23|url=https://www.tendertiger.com/ResultDetail/Resultinformation?resultId=sIjKDbeb6oGHWqx8nqxRlsTNVfCNIIyURxqSexofoZs=&tenderNo=mixgv+fuE70dB9zrWuK1rGo+BVQqqe7SbRiYOvIb6SE=&tendertype=Live|access-date=2026-04-19|website=Tender Tiger|language=en}}</ref>
تِم چھِ سوشل میڈیا تہٕ ویڈیو پلیٹ فارمن پَتہٕ تعلیمی مواد شیئر کران، یُس عام لوکن تہٕ پیشہ ورن دونوکُن فائدہ پہنچان چھُ۔<ref name=":1" />
== آتش حفاظتی فلسفہ ==
شیوام فائر والا ہُنٛد کام چھُ کینٛہہ بنیادی اصولن پَتہٕ مبنی:
* '''بیداری:''' حفاظت ہُنٛد بنیاد چھُ صٔحیٖح علم، تہٕ علم ہُنٛد کمی چھُ اکثر حادثن ہُنٛد سبب۔
* '''تیاری:''' آتش حفاظت چھُ مسلسل عمل، نہ کہ صرف ایمرجنسی حالتن خٲطرٕ۔
* '''روک تھام:''' پیشگی احتیاط تہٕ ذمہ داری ذریعہ خطرن کم کرنہٕ ممکن چھُ۔<ref>{{ویب حَوالہٕ|title=MSN|url=https://www.msn.com/en-in/sports/cricket/srh-fan-performs-bizarre-act-shivam-dube-departs-next-ball-video-viral/ar-AA21fml4|access-date=2026-04-19|website=www.msn.com}}</ref><ref>{{ویب حَوالہٕ|title=MSN|url=https://www.msn.com/en-in/sports/cricket/shocking-video-of-srh-supporter-s-black-magic-seconds-before-shivam-dube-s-wicket-goes-viral-complaint-lodged/ar-AA21exk9|access-date=2026-04-19|website=www.msn.com}}</ref>
== اثر ==
شیوام فائر والا ہُنٛد کام چھُ آتش حفاظت کُن صرف قانونی تقاضہ نَہ بلکہ سَمٲجی ذمہ داری بنٲوان۔ تِم چھِ مسلسل تٲلیٖم، بیداری تہٕ تیاری ذریعہ مۄحفوٗظ معاشرہ قٲیِم کرنہٕ پَتہٕ زور دیوان۔<ref name=":0" />
== حَوالہٕ ==
{{reflist}}
lcz7w24m7pk7oh2mhl9lmiyqprcq032
Module:String1
828
29376
142944
136717
2026-06-26T11:50:25Z
آیات محراج
11062
Replaced content with "function p.replace( frame ) local new_args = _getParameters( frame.args, {'source', 's', 'pattern', 'replace', 'count', 'plain'} ) local source_str = new_args['source'] or new_args['s'] or '' local pattern = new_args['pattern'] or '' local replace = new_args['replace'] or '' local count = tonumber( new_args['count'] ) local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return source_str end plain = _getBoolean( plain ) if..."
142944
Scribunto
text/plain
function p.replace( frame )
local new_args = _getParameters( frame.args, {'source', 's', 'pattern', 'replace', 'count', 'plain'} )
local source_str = new_args['source'] or new_args['s'] or ''
local pattern = new_args['pattern'] or ''
local replace = new_args['replace'] or ''
local count = tonumber( new_args['count'] )
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return source_str
end
plain = _getBoolean( plain )
if plain then
pattern = _escapePattern( pattern )
replace = mw.ustring.gsub( replace, "%%", "%%%%" )
end
local result
if count ~= nil then
result = mw.ustring.gsub( source_str, pattern, replace, count )
else
result = mw.ustring.gsub( source_str, pattern, replace )
end
return result
end
ijktv3ufbixi9xbifpq6riojjjshl6x
142945
142944
2026-06-26T11:53:16Z
آیات محراج
11062
142945
Scribunto
text/plain
--[[
replace
This function allows one to replace a target string or pattern within another
string.
Usage:
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
OR
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|
count=replacement_count|plain=plain_flag}}
Parameters
source: The string to search
pattern: The string or pattern to find within source
replace: The replacement text
count: The number of occurences to replace, defaults to all.
plain: Boolean flag indicating that pattern should be understood as plain
text and not as a Lua style regular expression, defaults to true
]]
function p.replace( frame )
local new_args = _getParameters( frame.args, {'source', 's', 'pattern', 'replace', 'count', 'plain' } )
local source_str = new_args['source'] or new_args['s'] or ''
local pattern = new_args['pattern'] or ''
local replace = new_args['replace'] or ''
local count = tonumber( new_args['count'] )
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return source_str
end
plain = _getBoolean( plain )
if plain then
pattern = _escapePattern( pattern )
replace = mw.ustring.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences.
end
local result
if count ~= nil then
result = mw.ustring.gsub( source_str, pattern, replace, count )
else
result = mw.ustring.gsub( source_str, pattern, replace )
end
return result
end
8nbotqbfbg7fwqxe2bdrdkay2ik4t90
142946
142945
2026-06-26T11:55:01Z
آیات محراج
11062
142946
Scribunto
text/plain
--[[
This module is intended to provide access to basic string functions.
Most of the functions provided here can be invoked with named parameters,
unnamed parameters, or a mixture. If named parameters are used, Mediawiki will
automatically remove any leading or trailing whitespace from the parameter.
Depending on the intended use, it may be advantageous to either preserve or
remove such whitespace.
Global options
ignore_errors: If set to 'true' or 1, any error condition will result in
an empty string being returned rather than an error message.
error_category: If an error occurs, specifies the name of a category to
include with the error message. The default category is
[Category:Errors reported by Module String].
no_category: If set to 'true' or 1, no category will be added if an error
is generated.
Unit tests for this module are available at Module:String/tests.
]]
local p = {}
--[[
Helper function that populates the argument list given that user may need to use a mix of
named and unnamed parameters. This is relevant because named parameters are not
identical to unnamed parameters due to string trimming, and when dealing with strings
we sometimes want to either preserve or remove that whitespace depending on the application.
]]
local function _getParameters( frame_args, arg_list )
local new_args = {}
local index = 1
local value
for _, arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index]
index = index + 1
end
new_args[arg] = value
end
return new_args
end
--[[
Helper Function to interpret boolean strings
]]
local function _getBoolean( boolean_str )
local boolean_value
if type( boolean_str ) == 'string' then
boolean_str = boolean_str:lower()
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or boolean_str == '' then
boolean_value = false
else
boolean_value = true
end
elseif type( boolean_str ) == 'boolean' then
boolean_value = boolean_str
else
error( 'Cap valor booleà trobat' )
end
return boolean_value
end
--[[
Helper function to handle error messages.
]]
local function _error( error_str )
local frame = mw.getCurrentFrame()
local error_category = frame.args.error_category or 'Errors detectats pel mòdul String'
local ignore_errors = frame.args.ignore_errors or false
local no_category = frame.args.no_category or false
if _getBoolean(ignore_errors) then
return ''
end
local error_str = '<strong class="error">Error del mòdul String: ' .. error_str .. '</strong>'
if error_category ~= '' and not _getBoolean( no_category ) then
error_str = '[[Categoria:' .. error_category .. ']]' .. error_str
end
return error_str
end
--[[
Helper function that escapes all pattern characters so that they will be treated
as plain text.
]]
local function _escapePattern( pattern_str )
return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" )
end
--[[
len
This function returns the length of the target string.
Usage:
{{#invoke:String|len|target_string|}}
OR
{{#invoke:String|len|s=target_string}}
Parameters
s: The string whose length to report
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.
]]
function p.len( frame )
local new_args = _getParameters( frame.args, {'s'} )
local s = new_args['s'] or ''
return mw.ustring.len( s )
end
--[[
sub
This function returns a substring of the target string at specified indices.
Usage:
{{#invoke:String|sub|target_string|start_index|end_index}}
OR
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}
Parameters
s: The string to return a subset of
i: The fist index of the substring to return, defaults to 1.
j: The last index of the string to return, defaults to the last character.
The first character of the string is assigned an index of 1. If either i or j
is a negative value, it is interpreted the same as selecting a character by
counting from the end of the string. Hence, a value of -1 is the same as
selecting the last character of the string.
If the requested indices are out of range for the given string, an error is
reported.
]]
function p.sub( frame )
local new_args = _getParameters( frame.args, { 's', 'i', 'j' } )
local s = new_args['s'] or ''
local i = tonumber( new_args['i'] ) or 1
local j = tonumber( new_args['j'] ) or -1
local len = mw.ustring.len( s )
-- Convert negatives for range checking
if i < 0 then
i = len + i + 1
end
if j < 0 then
j = len + j + 1
end
if i > len or j > len or i < 1 or j < 1 then
return _error( 'Índex fora del rang de la cadena' )
end
if j < i then
return _error( 'Índexs de la cadena no ordenats' )
end
return mw.ustring.sub( s, i, j )
end
--[[
match
This function returns a substring from the source string that matches a
specified pattern.
Usage:
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
OR
{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from each string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
If the match_number or start_index are out of range for the string being queried, then
this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and
an empty string will be returned on any failure.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
-- This sub-routine is exported for use in other modules
function p._match( s, pattern, start, match_index, plain_flag, nomatch )
if s == '' then
return _error( 'Cadena on cercar està buida' )
end
if pattern == '' then
return _error( 'Cadena de cerca està buida' )
end
start = tonumber(start) or 1
if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then
return _error( 'Índex d\'inici fora del rang de la cadena' )
end
if match_index == 0 then
return _error( 'Número de coincidència fora de rang' )
end
if plain_flag then
pattern = str._escapePattern( pattern )
end
local result
if match_index == 1 then
-- Find first match is simple case
result = mw.ustring.match( s, pattern, start )
else
if start > 1 then
s = mw.ustring.sub( s, start )
end
local iterator = mw.ustring.gmatch(s, pattern)
if match_index > 0 then
-- Forward search
for w in iterator do
match_index = match_index - 1
if match_index == 0 then
result = w
break
end
end
else
-- Reverse search
local result_table = {}
local count = 1
for w in iterator do
result_table[count] = w
count = count + 1
end
result = result_table[ count + match_index ]
end
end
if result == nil then
if nomatch == nil then
return _error( 'Cap coincidència trobada' )
else
return nomatch
end
else
return result
end
end
-- This is the entry point for #invoke:String|match
function p.match( frame )
local new_args = _getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} )
local s = new_args['s'] or ''
local start = tonumber( new_args['start'] ) or 1
local plain_flag = _getBoolean( new_args['plain'] or false )
local pattern = new_args['pattern'] or ''
local match_index = math.floor( tonumber(new_args['match']) or 1 )
local nomatch = new_args['nomatch']
return p._match( s, pattern, start, match_index, plain_flag, nomatch )
end
--[[
pos
This function returns a single character from the target string at position pos.
Usage:
{{#invoke:String|pos|target_string|index_value}}
OR
{{#invoke:String|pos|target=target_string|pos=index_value}}
Parameters
target: The string to search
pos: The index for the character to return
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
The first character has an index value of 1.
If one requests a negative value, this function will select a character by counting backwards
from the end of the string. In other words pos = -1 is the same as asking for the last character.
A requested value of zero, or a value greater than the length of the string returns an error.
]]
function p.pos( frame )
local new_args = _getParameters( frame.args, {'target', 'pos'} )
local target_str = new_args['target'] or ''
local pos = tonumber( new_args['pos'] ) or 0
if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then
return _error( 'Índex fora del rang de la cadena' )
end
return mw.ustring.sub( target_str, pos, pos )
end
--[[
find
This function allows one to search for a target string or pattern within another
string.
Usage:
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}
OR
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}
Parameters
source: The string to search
target: The string or pattern to find within source
start: The index within the source string to start the search, defaults to 1
plain: Boolean flag indicating that target should be understood as plain
text and not as a Lua style regular expression, defaults to true
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the parameter. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
This function returns the first index >= "start" where "target" can be found
within "source". Indices are 1-based. If "target" is not found, then this
function returns 0. If either "source" or "target" are missing / empty, this
function also returns 0.
This function should be safe for UTF-8 strings.
]]
function p.find( frame )
local new_args = _getParameters( frame.args, {'source', 'target', 'start', 'plain' } )
local source_str = new_args['source'] or ''
local pattern = new_args['target'] or ''
local start_pos = tonumber(new_args['start']) or 1
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return 0
end
plain = _getBoolean( plain )
local start = mw.ustring.find( source_str, pattern, start_pos, plain )
if start == nil then
start = 0
end
return start
end
--[[
replace
This function allows one to replace a target string or pattern within another
string.
Usage:
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
OR
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|
count=replacement_count|plain=plain_flag}}
Parameters
source: The string to search
pattern: The string or pattern to find within source
replace: The replacement text
count: The number of occurences to replace, defaults to all.
plain: Boolean flag indicating that pattern should be understood as plain
text and not as a Lua style regular expression, defaults to true
]]
function p.replace( frame )
local new_args = _getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } )
local source_str = new_args['source'] or ''
local pattern = new_args['pattern'] or ''
local replace = new_args['replace'] or ''
local count = tonumber( new_args['count'] )
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return source_str
end
plain = _getBoolean( plain )
if plain then
pattern = _escapePattern( pattern )
replace = mw.ustring.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences.
end
local result
if count ~= nil then
result = mw.ustring.gsub( source_str, pattern, replace, count )
else
result = mw.ustring.gsub( source_str, pattern, replace )
end
return result
end
--[[
simple function to pipe string.rep to templates.
]]
function p.rep( frame )
local repetitions = tonumber( frame.args[2] )
if not repetitions then
return _error( "s'esperava un número com a segon paràmetre; trobat: " .. ( frame.args[2] or '' ))
end
return string.rep( frame.args[1] or '', repetitions )
end
--[[
escapePattern
This function escapes special characters from a Lua string pattern. See [1]
for details on how patterns work.
[1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
Usage:
{{#invoke:String|escapePattern|pattern_string}}
Parameters
pattern_string: The pattern string to escape.
]]
function p.escapePattern( frame )
local pattern_str = frame.args[1]
if not pattern_str then
return _error( 'No pattern string specified' )
end
local result = _escapePattern( pattern_str )
return result
end
--[[
count
This function counts the number of occurrences of one string in another.
]]
function p.count(frame)
local args = _getParameters(frame.args, {'source', 'pattern', 'plain'})
local source = args.source or ''
local pattern = args.pattern or ''
local plain = _getBoolean(args.plain or true)
if plain then
pattern = _escapePattern(pattern)
end
local _, count = mw.ustring.gsub(source, pattern, '')
return count
end
--[[
endswith
This function determines whether a string ends with another string.
]]
function p.endswith(frame)
local args = _getParameters(frame.args, {'source', 'pattern'})
local source = args.source or ''
local pattern = args.pattern or ''
if pattern == '' then
-- All strings end with the empty string.
return "yes"
end
if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then
return "yes"
else
return ""
end
end
--[[
join
Join all non empty arguments together; the first argument is the separator.
Usage:
{{#invoke:String|join|sep|one|two|three}}
]]
function p.join(frame)
local args = {}
local sep
for _, v in ipairs( frame.args ) do
if sep then
if v ~= '' then
table.insert(args, v)
end
else
sep = v
end
end
return table.concat( args, sep or '' )
end
--[[
Strip
This function Strips charecters from string
Usage:
{{#invoke:StringFunc|strip|source_string|charecters_to_strip|plain_flag}}
Parameters
source: The string to strip
chars: The pattern or list of charecters to strip from string, replaced with ''
plain: A flag indicating that the chars should be understood as plain text. defaults to true.
Leading and trailing whitespace is also automatically stripped from the string.
]]
function p.strip( frame )
local new_args = _getParameters( frame.args, {'source', 'chars', 'plain'} )
local source_str = new_args['source'] or ''
local chars = new_args['chars'] or ''
source_str = mw.text.trim(source_str)
if source_str == '' or chars == '' then
return source_str
end
local l_plain = _getBoolean( new_args['plain'] or true )
if l_plain then
chars = _escapePattern( chars )
end
local result
result = mw.ustring.gsub(source_str, "["..chars.."]", '')
return result
end
--[[
Split
This function Splits a string based on a separator, returns nth substring based on count.
Usage:
{{#invoke:StringFunc|split|source_string|separator|count}}
Parameters:
source: The string to return a subset of
separator: The string to split on
count: The nth substring based on the separator to return
]]
function p.split( frame )
local new_args = _getParameters( frame.args, {'source', 'separator', 'count'} )
local source_str = new_args['source'] or ''
local separator = (new_args['separator'] or ''):gsub('"', '')
local separator_len = mw.ustring.len(separator)
if source_str == '' or separator == '' then
return source_str;
end
local ret_count = tonumber( new_args['count'] ) or 1
if ret_count < 1 then
return ""
end
local start = 1
local iter = mw.ustring.find(source_str, separator, start, true)
if iter == nil then
if ret_count == 1 then
return source_str
else
return ""
end
else
iter = iter - 1
end
if ret_count == 1 then
return mw.ustring.sub( source_str, start, iter)
end
for i=2, ret_count do
start = iter+separator_len + 1
iter = mw.ustring.find(source_str, separator, start, true)
if iter == nil then
if ret_count == i then
return mw.ustring.sub(source_str, start, mw.ustring.len(source_str))
else
return ""
end
else
iter = iter - 1
end
end
return mw.ustring.sub( source_str,start,iter)
end
function p.isNumber( frame )
local new_args = _getParameters( frame.args, {'source'} )
local source_str = new_args['source'] or ''
if source_str == '' then
return "false"
end
if tonumber(source_str) == nil and tonumber(string.gsub(source_str, ",", ".", 1) .. '') == nil then
return "false"
end
return "true"
end
return p
3d6nz01ayewd0gpk0yaem1gac2m4caf
کٲشِرؠ کھؠنَن ہِنٛز فہرست
0
29477
142894
142391
2026-06-25T18:05:10Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142894
wikitext
text/x-wiki
[[کٲشُر کھؠن]] چھُ مختٔلف قٕسمٕک کھؠن پؠٹھ مشتمل، یم بۄن چھِ دَرٕج۔
== تُجہِ ==
[[File:Sheekh_Kebabs.jpg|thumb|تُجہٕ تہٕ کباب]]
[[File:Kabab_wazwan.jpg|thumb|کٲشِرؠ کباب ہؠکَو ناشتہٕ پٲٹھؠ یا بتس سٕتؠ کھؠتھ۔]]
[[File:'Seekh-Kabaab'_hawker_in_Srinagar.jpg|thumb|سرینگرَس منٛز ژِنؠن پؠٹھ تُجہِ۔]]
کبابن ہٕنٛز ابتدا ہُنٛد اَکھ ؤرجَن چھُ سُہ یَتھ مَنٛز تُرکی فوجی گۄڈنِچہِ لٹہِ مازٕکؠ ٹُکرٕ یلہٕ نارس پؠٹھ {{مانے|بٕزنہٕ|Grill}} خٲطرٕ زاننہٕ ٲسؠ یِوان۔<ref name="Bhowmik-2021">{{cite web|last1=Bhowmik|first1=Samarpan|date=15 March 2021|title=One chef, one recipe: Kashmiri Kebab by Chef Ghulam Rabbani|url=https://www.traveldine.com/one-chef-one-recipe-kashmiri-kebab-by-chef-ghulam-rabbani/|url-status=dead|archive-url=https://web.archive.org/web/20220705030757/https://www.traveldine.com/one-chef-one-recipe-kashmiri-kebab-by-chef-ghulam-rabbani/|archive-date=5 July 2022|access-date=8 April 2022|website=Traveldine.com}}</ref> کٔشیٖرِ ہٕنٛدِ کباب چھِ مُقٲمی مَسالَو سٟتؠ رَننہٕ یِوان تہٕ ژؠٹنؠن سٟتؠ چھِ رَننہٕ یِوان:<ref name="Bhowmik-2021" />
* [[کَباب]]۔<ref name="Kilam1991">{{cite book|last1=Kaul Kilam|first1=Shyam Rani|title=Culinary Art of Kashmir (Kashmiri Cookbook)|date=1988|publisher=De Leij}}</ref>
* کۄکر کباب۔<ref>{{cite book|last1=Razdan|first1=Sarla|title=Kashmiri Cuisine Through the Ages|date=2020|publisher=Roli Books|isbn=978-81-941109-4-1|location=New Delhi|page=138}}</ref>
* ''لٔہرٕ در کباب یا لہبہٕ کباب/موچہٕ کباب یہِ کباب'' چھُ [[ڈُنٛگہٕ|نایہِ]] ہِنٛدؠ پٲٹھؠ آسان''.''
* ''کۄکور لہابدار کباب رُوانٛگن'' کۄکر کباب مۄٹ رُوانٛگن رسس مَنٛز۔<ref>{{کِتاب حَوالہٕ|last=Waza & Mohan|first=Sharief, Shafi and Rafiq, & Rocky|title=Traditional Kashmiri Cuisine Wazwaan|date=2019|publisher=Lustre Press Roli Books|isbn=978-81-941109-3-4|location=New Delhi|page=56}}</ref>
* ''شٲمی کباب'' وزوان طرزٕک ماز پیٹیز یَتھ مَنٛز چنہٕ، ٹھوٗل تہٕ کٲشِرؠ مسالہٕ چھِ۔<ref name="Zomato-2022">{{ویب حَوالہٕ|title=Sarposh Menu|url=https://www.zomato.com/bangalore/sarposh-indiranagar-bangalore/order|access-date=19 March 2022|website=Zomato}}</ref>
* '''چَمٛپ'''، کٹہٕ ٹُکرٕ<ref>{{کِتاب حَوالہٕ|last=Razdan|first=Sarla|title=Kashmiri Cuisine Through the Ages|date=2020|publisher=Roli Books|isbn=978-81-941109-4-1|location=New Delhi|page=52}}</ref>
* [[پَمپوش|نَدٕرؠ]] مۄنٛڈ یا نَدٕرؠ مۄنٛجہِ
* بُزِتھ [[ژامَن]].
* بُزِٹھ [[گاڈ]]۔
* بُزِتھ [[اولُو|اولَو]]، [[ٹھوٗل]]، [[ماز]] بیترِ، گول اووَن سٕتی پٔکِتھ میژِ ہُنٛد بانہٕ [[کانٛگٕر]] چھُ ٹھوٗل، ٲلو، مٹر بینز، ماز بیترِ کھیٚنہٕ خٲطرٕ اووَن پٲٹھؠ کٲم کران۔<ref>{{cite web|last1=Dubey|first1=Kavya|date=26 February 2020|title=The inevitable Kang'ir!|url=https://thekashmirwalla.com/the-inevitable-kangir/|url-status=usurped|archive-url=https://web.archive.org/web/20211004094600/https://thekashmirwalla.com/the-inevitable-kangir/|archive-date=4 October 2021|access-date=4 October 2021|website=thekashmirwalla.com}}</ref><ref>{{cite web|last1=Bhat|first1=Riyaz|title=Kangir, savior of Kashmiris in bone chilling winter.|url=https://www.risingkashmir.com/Kangir--savior-of-Kashmiris-in-bone-chilling-winter-89270|access-date=4 October 2021|website=risingkashmir.com|archive-date=4 October 2021|archive-url=https://web.archive.org/web/20211004094600/https://www.risingkashmir.com/Kangir--savior-of-Kashmiris-in-bone-chilling-winter-89270|url-status=dead}}{{Dead link|date=March 2025|bot=InternetArchiveBot|fix-attempted=yes}}</ref>
* ''تَلِتھ گاڈ''۔<ref>{{ویب حَوالہٕ|title=Flavours of Kashmir at Vedic Village|url=https://www.telegraphindia.com/culture/flavours-of-kashmir-at-vedic-village/cid/1379480|access-date=18 March 2022|website=The Telegraph Online}}</ref>
* گاڈ تَلِتھ تہٕ [[بادام]]
* تَلِتھ کۄکُر
* [[تُجہِ]].
* گاڈ تُجہِ
* ژامنہِ تُجہِ
* ژھاپ ماز، sausages
* کَلیٖنٛگ، موٚٹ میمبرین یُس [[کَٹھ|کٹن]] ہُنٛد کلہٕ، کلہٕ کھۄپٕر تہٕ سارِنٕے ؤلِتھ چھُ، موٚٹ ژٔٹِتھ تہٕ مسالہٕ تہٕ کم مایع سٟتؠ گھنٛٹہٕ وادن تام کم [[نار|اۆگنس]] پؠٹھ رنٛنہٕ خٲطرٕ تھاونہٕ یِوان۔
== صُبحُک کھؠن ==
عام کٲشِرِس خٲطرٕ چھُ ناشتہٕ عام طور مقٲمی کاندٕرؠ وان پؠٹھٕ تازٕ بریڈ تہٕ دوپہرُک اَکھ پیالہٕ چاے ([[نوٗنہٕ چاے]]) سٟتؠ شۆروٗع گژھان۔<ref name="livemint">{{cite web|last1=Mukherjee|first1=Sugato|date=4 February 2019|title=Keep warm in Kashmir with this breakfast of champions|url=https://www.livemint.com/mint-lounge/features/keep-warm-in-kashmir-with-this-breakfast-of-champions-1549264883567.html|access-date=8 April 2022|website=Livemint}}</ref> ییٚلہِ زن ژۆٹ پرؠتھ موسمَس مَنٛز ناشتہٕ خٲطرٕ آسان چھِ، امِکؠ سٲتھی چھِ بدلان۔<ref name="Kaul-2023">{{Cite web|last=Kaul|first=Prof Upendra|date=4 December 2023|title=Come Winter and Come our Special Cuisine|url=https://www.greaterkashmir.com/editorial-page-2/come-winter-and-come-our-special-cuisine/|access-date=8 February 2024|website=Greater Kashmir|language=en-US}}</ref> کینٛہہ سستہٕ عیش و عشرت چھِ شٲمِل:
[[File:The_Great_Kashmiri_Salt_tea.png|thumb|کٲشُر نوٗنہٕ چاے ۔]]
* [[ۂرؠسہٕ]] تہٕ تیار کرن وٲلِس ۂرؠسہٕ گۆر یا ۂرؠسہٕ وول ونان۔یہِ کھؠن چھُ تیوٗت مزٕدار زِ 18 ہمہ صٔدی ہنٛد أکؠ افغان گورنر، یس افغان حکمرٲنی دوران ییٚتہ آو، چھ ماننہٕ یوان ز أمؠ اوس پانس زیٛادٕ ۂرؠسہٕ کھیٛۆمُت تہٕ مٔرمُت۔<ref>{{ویب حَوالہٕ|last=Ahmed|first=F|date=2 December 2006|title=Eating it the Kashmiri way|url=https://www.hindustantimes.com/india/eating-it-the-kashmiri-way/story-iER5zKGwYoqi9AT6YK2TKL.html|access-date=14 June 2022|website=Hindustan Times}}</ref>
* ۂرؠسہٕ زعفرانی، یَتھ پؠٹھ کٲشُر [[کۄنٛگ]] چھکِتھ چھُ آسان۔ [[عٲلؠ کٔدٕل|عٲلؠ کٔدلس]] مَنٛز اوس اَکھ بناون وول اَمہِ خاص کھؠن خٲطرٕ زاننہٕ یوان۔<ref>{{ویب حَوالہٕ|last=Shah|first=Tariq|date=12 October 2020|title=Harissa shops have started making the winter dish in Kashmir|url=https://voiceofvalley.com/2020/10/12/harissa-shops-have-started-making-the-winter-dish-in-kashmir/|access-date=17 May 2022|website=Voice of Valley}}</ref>
* لُچہِ تہٕ حلوٕ، [[کھیٖر بَوٲنی مَنٛدَر|کھیٖر بَوٲنی مَنٛدَرس]] نیؠر لُچہِ بناون والؠو ہنٛد ذریعہٕ۔<ref>{{ویب حَوالہٕ|last=Bamzai|first=Kaveree|title=Why should Kashmiri Pandits return to sponsored lives in government dollhouses?|url=https://www.dailyo.in/politics/kashmiri-pandits-mufti-mohammed-sayeed-srinagar-kheer-bhawani-yasin-malik/story/1/3064.html|access-date=13 June 2022|website=daily O}}</ref>
* [[مکاے وٕٹ]]
* [[غأرؠ|غٲرؠ]] {{مانے|ؤگرٕ|Porridge}}
* ''وُشکہٕ واٹھ،'' barley meal porridge۔ <ref name="ReferenceJ">{{کِتاب حَوالہٕ|last=Kilam|first=Shyam Rani & S.S Kaul|title=Culinary Art of Kashmir|date=1991|publisher=De Leij|location=New Delhi|page=36}}</ref>
== وازٕوان کھؠن ==
[[File:TabakMaaz_wazwan.jpg|thumb|تَبَق ماز]]
[[File:Kashmiri_Aab_Gosht.jpg|thumb|آبہٕ گوش]]
برصغیر پاک و ہند کین زیٛادٕ تر ضیافتن برعکس ییتہِ نارس پؠٹھ رنٛنہٕ وِزِ کھؠنس مَزٕ چھُ شٲمل کرنہٕ یوان، وازوان ذایقہٕ چھُ شٲمل کرنہٕ یوان ییٚلہِ سِنُک ذایقہٕ چھُ وُنہِ تہِ رَننہٕ آمُت آسان یا ذایقہٕ دار آبس مَنٛز پاکنٲوِتھ (اوسموسس):<ref name="Times of India-2021">{{cite news|title=The classic tale of royal Kashmiri Wazwan|url=https://timesofindia.indiatimes.com/life-style/food-news/the-classic-tale-of-royal-kashmiri-wazwan/articleshow/87685773.cms|newspaper=The Times of India|date=14 November 2021|access-date=9 April 2022}}</ref>
* [[تَبَق ماز]]یہٕ چھ وٗچھنہٕ یوان ز یہِ چھ [[قازقستان|قازقستانہٕ]] پیٹھہٕ آمت یتہ یہٕ پنٛدٹھ ناو، قبرگاہ سٟتؠ زاننہٕ چھ یوان۔<ref name="Excelsior-2023">{{ویب حَوالہٕ|last=Excelsior|first=Daily|date=4 February 2023|title=Cuisines of Kashmir: A tradition and a treasure trove|url=https://www.dailyexcelsior.com/cuisines-of-kashmir-a-tradition-and-a-treasure-trove/|access-date=8 October 2023|website=Jammu Kashmir Latest News {{!}} Tourism {{!}} Breaking News J&K|language=en-US}}</ref>
* [[ٹَنگ|ٹَنٛگ]] تہٕ لہبہٕ کباب
* وازٕکۄکُر
* سفید کۄکُر
* [[File:Daniphol_wazwan.jpg|thumb|دَنہِ پھۄل]]دَنہِ پھۄل
* آبہٕ گوش، یَتھ ''دۄدٕ ماز'' تہٕ ونان چھِ۔
* [[میتھہِ ماز]]
* وازٕ [[ہیٚڑَر|ہیٚڑر]]
* [[مَرژٕوانٛگن قۄرمہٕ]]
* کۄکر مَرژٕوانٛگن قۄرمہٕ
* اولَو بُخار قۄرمہٕ
* بادام قۄرمہٕ
* [[دانِوَل]] قۄرمہٕ
* کۄکر دانِوَل قۄرمہٕ
* [[مۄنٛجہٕ|مۄنٛجہِ]] کٲلؠ، مۄنٛجہِ گَنٛڈٕ رَسس مَنٛز تیار یوان کرنہٕ۔
== رَس ==
* ژھَٹہٕ رَس یا ماز رَس
* چَنہٕ رَس
== گرٕکؠ ماز سِنؠ ==
[[File:Shabdeg_Main_Ingredients.JPG|thumb|شب دیگ]]
* [[File:Shabdeg1.jpg|thumb|شب دیگ ٹُکرٕ ہؠتھ]] [[File:Shabdeg..JPG|thumb|شب دیگ رِستہٕ ہؠتھ]] [[File:Rogan_josh02.jpg|thumb|''[[Rogan josh|روغن جوش]]'']] [[File:Yakhni_from_kashmir.jpg|thumb|یَخٕنؠ]] [[File:Shaljam_Gosht_(Shalgam_Gosht).JPG|thumb|[[گۄگٕج|گۄگجہِ]] تہٕ ماز ]]قٔلؠیہِ، ماز سیٛۆن وۄزٕلؠ مَرژٕوانٛگنو رۆستُے
* کۄکر قٔلؠیہِ
* [[شب دیگ]]
* دٔنؠ، {{مانے|وسہِ أڈٕج|marrow-bone}} رسس مَنٛز
* مَژھہِ گَنٛڈ
* میتھہِ مَژھ
* مَژھ تہٕ [[ژیر]]
* اولَو بُخٲری بٔرِتھ مَژھ
* میتھ تہٕ گول مَژھ
* مَژھ تہٕ [[پھُل گوٗبی|پھُل گوٗپی]]
* مَژھ تہٕ اولَو
* ژیر کوفتہٕ
* نَدٕرؠ تہٕ ماز
* نَدٕرؠ، اولَو تہٕ ماز
* ماز [[وانٛگُن]]
* کۄکر ٲلوبُخار قۄرمہٕ
* [[پالکھ|پالَکھ]] تہٕ کۄکُر
* گَنٛڈٕ تہٕ کۄکُر
* کۄکُر تہٕ [[تریل]]
* [[بمہٕ ژوٗنٛٹھ|بمہٕ ژوٗنٛٹؠ]] تہٕ ماز
* گۄگجہِ آرٕ تہٕ ماز
* گازرِ تہٕ ماز
* بۄٹہٕ ژیر ماز
* [[ہَنٛدھ|ہَنٛد]] تہٕ کۄکُر
* ہَنٛد تہٕ ماز، پرٛون کھؠن دۄدٕ واجیٚنؠ ماجن خٲطرٕ
* [[ہاکھ]] ماز
* [[وۄستہٕ ہاکھ]] تہٕ ماز
* [[مۄنٛجہٕ|مۄنٛجہِ]] تہٕ ماز
* [[گول اَل]] سِیُٛن
* [[تریل]] تہٕ ماز
* مۄنٛجہِ قٔلؠیہِ
* [[روغَن جوش]] کٲشِرؠ مُسلمان چھِ [[پرٛان]] ترٛاوان۔
* کۄکُر روغَن جوش
* ہِنٛدی روغَن جوش، روغَن جوش [[تَمبٕر|اِملی]] سٟتؠ
* [[ووٗنٛٹ|ووٗنٛٹھ]] روغَن جوش عام طور [[عیٖداُلاضحٰی|بجہِ عیٖذ]] پؠٹھ
* پَچہِ روغَن جوش، trotter in red gravy
* [[یَخٕنؠ]] آو اکبر سٕنٛدس دور حکوٗمتس مَنٛز کشمیرس مَنٛز زاننہٕ۔<ref name="food.ndtv.com">{{ویب حَوالہٕ|last=Borah|first=Plavaneeta|title=Yakhni: Kashmiri Cuisine's Famous Slow-Cooked Dish Introduced by the Moghuls|url=https://food.ndtv.com/food-drinks/yakhni-kashmiri-cuisine-s-famous-slow-cooked-dish-introduced-by-the-moghuls-1738756|access-date=27 July 2022|website=NDTV Food}}</ref>
* کۄکر یَخٕنؠ
* شیٛٲم، دگِتھ ماز مۄنٛجہِ [[زامُت دۄد|زامُت دۄدس]] مَنٛز رٔنِتھ
* کۄکر شیٛٲم
== تَلِتھ ژیٚٹؠ ==
* ''چُستہٕ،'' خۄشکھ ٹیٛۆٹھ ژھاوٕلؠ أنٛدرم رس''۔''<ref name="Uttarakhand-2021">{{cite web|title=Cuisine of Jammu and Kashmir and Himachal|url=https://www.uou.ac.in/sites/default/files/slm/BHM-502AT.pdf|access-date=30 September 2021|website=Uttarakhand Open University}}</ref>
* [[نۆہ|نٔہؠکَلہٕ]] تہٕ پھیندر یَخٕنؠ
* ژھاگٕلؠ یَخٕنؠ
* ڈؠمنہِ یَخٕنؠ
* بۄکہٕ وچہٕ ژھاگٕلؠ
* ژَروَن
* ژۄکہٕ ژَروَن
* ژَروَن اولَو
* کَلہٕ ماز
* [[File:Goshtaba_wazwan.jpg|thumb|گۄشہٕ تاب]]پاچہِ تہٕ ہیرِ رَس
== رِستہٕ ==
وازَن چھُ صٔحیٖح ژٹُن تہٕ ماز مکمل پٲٹھؠ دگُن [[فَن|کلا]] ہیچھنہٕ خٲطرٕ ؤری وادن ہیٚچھناونہٕ یوان۔<ref>{{ویب حَوالہٕ|last=Bakhsh|first=Zenaira|date=15 July 2021|title=The origin, evolution of Kashmir's emblematic cuisine Wazwan|url=https://thekashmirwalla.com/the-origin-evolution-of-kashmirs-emblematic-cuisine-wazwan/|url-status=usurped|archive-url=https://web.archive.org/web/20210920071748/https://thekashmirwalla.com/the-origin-evolution-of-kashmirs-emblematic-cuisine-wazwan/|archive-date=20 September 2021|access-date=8 April 2022|website=Kashmir Walla}}</ref> رؠوٲیتی طور چھُ کٹہٕ ماز ڈوٗنؠ لٔکرِ سٟتؠ دَگنہٕ یِوان۔ <ref name="In search Wazwan">{{ویب حَوالہٕ|last=Jolly|first=Surjan Singh|title=In search Wazwan|url=https://www.telegraphindia.com/culture/food/in-search-wazwan/cid/1839845|access-date=8 May 2022|website=The Telegraph online}}</ref>
[[File:Rista_wazwan.jpg|thumb|رِستہٕ ]]
* [[گۄشتابہٕ]]
* [[بَڈماز]] [[رِستہٕ]]
* بَڈماز گۄشتابہٕ
* پالَکھ رِستہٕ ، [[ترٛٲمؠ تہٕ سرپوش|ترٛامہِ]] پؠٹھ ترٛاونہٕ یِوان۔
* سفید رِستہٕ
== سبزی ==
کٔشیٖر چھِ ٹَن واد سبزی تہٕ جنگلاتی پٲداوار پٲدٕ کران۔<ref name="Wani-2023">{{Cite news|last=Wani|first=Arif Shafi|date=27 January 2023|title=''When Gujaratis got bowled over by ethnic Kashmiri vegetarian dishes at Bhuj''|journal=Greater Kashmir|url=https://www.greaterkashmir.com/todays-paper/front-page/when-gujaratis-got-bowled-over-by-ethnic-kashmiri-vegetarian-dishes-at-bhuj|accessdate=21 May 2023}}</ref> رؠوایتی کھؠن چھِ:
[[File:Kashmiri_Dum_aloo.jpeg|thumb|دم اولَو]]
* [[دمہٕ ٲلَو|دم اولَو]]
* وۄزِلؠ ٲلوٕ
* مٹر ٲلوٕ، [[بتہٕ|بتس]] سٟتؠ کھؠنہٕ یِوان۔
* [[اولُو|اولَو]] [[زامُت دۄد|دۄد]] لٲیِتھ۔
* [[گَنڈٕ|گنٛڈٕ]] [[مَٹَر]]
* گَنٛڈٕ تہٕ [[ہؠمبہٕ]]
* بۄڈٕ رازمَہ تہٕ اولَو
* [[File:Gobhi_Dum.jpg|thumb|دمہٕ پھُل گوٗپی]][[رازمَہ ہؠمبہٕ]] تہٕ ندٕرؠ
* رازمَہ ہؠمبہٕ تہٕ [[وانٛگُن|وانٛگن]]
* [[بَنٛدگوٗپی]] تہٕ [[رُوانٛگن|ٹماٹر]]
* [[پَمپوش|نَدٕرؠ]] [[پالکھ|پالَکھ]]
* رٔنِتھ [[بمہٕ ژوٗنٛٹھ|بمہٕ ژوٗنٛٹؠ]] کھنجہِ
* بَمہٕ ژوٗنٛٹؠ وانٛگَن
* بَمہٕ ژوٗنٛٹؠ ندٕرؠ
* دۄدٕ وانٛگن
* [[کَریل]] تہٕ وانٛگن
* الہٕ لانٕج تہٕ وانٛگن، pumpkin greens with aubergine.
* ژوٗنٛٹھؠ وانٛگن،رننہٕ وِزِ چھِ تیٖلس مَنٛز [[یَنٛگہٕ]] ترٛاوان۔
* ژۄکہٕ وانٛگن ہَچہِ
* گول اَل تہٕ ڈوٗنؠ گوجہٕ
* گَنڈٕ دۄد
* ہۄچھ [[ہَنٛد]]
* رُوانٛگن ہچہِ
* [[مۄنٛجہٕ ہاکھ]]
* دمہٕ مۄنٛجہِ
* دمہٕ پھُل گوٗپی
* پھُل گوٗپی اولَو
* [[ہاکھ]]، [[وۄستہٕ ہاکھ]]، ہٲنٛز ہاکھ، [[سۄژَل]]، [[کرٛؠژھ]]، [[ہَنٛد]]، [[اۆبُج]]، [[لِسہٕ]] تہٕ باقٕے
* [[نُنَر (سبزی)|نُنَر]]
* بٹہٕ ہاکھ یا سبز ہاکھ
* دٔگِتھ ہاکھ
* گۄگجہِ ہاکھ
* [[وۄپَل ہاکھ]]
* وۄستہٕ ہاکھ تہٕ زۆمبرٕ ٹھوٗل
* ہاکھ ندٕرؠ
* ہاکھ تہٕ اولَو
* ہاکھ وانٛگن
* [[سۄژَل ندرُر]] (Malva Parviflora)
* سۄژَل وانٛگنیہِ کھؠن چھُ سۄژَل تہٕ ٹھوٗل وانگن سٟتؠ بناونہٕ یوان۔ ''ٹھوٗل-وانگن'' چھِ اَکھ لۄکٹ وانٛگن یس نہٕ پننس پورٕ سایزس مَنٛز ووتمت چھُنہٕ آسان۔<ref>{{کِتاب حَوالہٕ|last=Khosa|first=Nancy|title=Kashmiri Cuisine Saffron Plate A Historic Perspective|date=2016|publisher=Utpal Publications|isbn=978-81-85217-34-5|location=Delhi|page=49}}</ref>
* مُجہِ مُلِوین، دٔگِتھ مُچہٕ پٔترِ رَس
* مُجہِ پٔتٕر تہٕ وانٛگن، radish leaves with aubergine
* زامُت دۄد کور
* اولَو بُم، اولَو سبزی یُس بُم (کُلؠ کۆٹ [[برِٛم پوش]] ہیٛوُے)
* [[بَنٛدگوٗپی|بَنٛد]] [[روغَن جوش|روغن جوش]]
* ندٕرؠ روغَن جوش
* ژھؠتہٕ گۄگجہِ
* ژھؠتہٕ مُجہِ
* ژھؠتہِ بَنٛدگوِپی
* ژۆکؠ ندٕرؠ
* ژۆکؠ مُجہِ/مُجہِ کٲلہٕ
* ژۆک ال
* الہٕ یَخٕنؠ
* [[ہیٚڑَر]] یَخٕنؠ
* ندٕرؠ یَخٕنؠ
* نیٛوٗٹری یَخٕنؠ
* [[کَریل]] یَخٕنؠ
* وانٛگن یَخٕنؠ
* پُدنہٕ اَل
* [[تریل]] تہٕ وانٛگن
* تریل تہٕ ٹماٹر
* وارِپھٔلؠ اولَو، potato with hot lentil
== ہیٚڑَر ==
[[File:Morchella_esculenta_grouping_01.jpg|thumb|[[گٕچھ|کنہٕ گٕچھ]]]]
ہِمالیٲیی دامنَن ہٕنٛدِس بسکیٖنَس مَنٛز، گُچھی یا کَناگوچی مشروم ([[کَنہٕ گٕچھ]] نسلٕچ زٲژ، یِم عام طور باقیَن جاین مورل ونان چھِ) چھِ نہٕ صِرِف [[کٔشیٖر|کٔشیٖرِ]] مَنٛز بلکہِ بین الاقوٲمی سطحَس پؠٹھ خاص پٲٹھؠ یوٗرپی گیسٹرونومی مَنٛز واریاہ قٟمتی ماننہٕ یِوان۔
رؠوٲیتی یا مشہوٗر کھؠن مَنٛز چھُ شٲمل:
* [[گٕچھ|کَنہٕ گٕچھ]] یَخٕنؠ
* کنہٕ گٕچھ مٹر مسالہٕ
* گٕچھہٕ ؤر
* [[شاجکان]] یا [[کنہٕ پَپَر]] (Geopora arenicola)
== ژامَن ==
* [[ژامَن|ژامنہِ]] کانتی
* [[لیٚدٕر|لیٛدٕر]] [[ژامَن]]
* ؤیٛٹھ ژامَن یا وۄزٕج ژامَن
* [[رُوانٛگن ژامَن]]
* پالَکھ/ہاکھ ژامَن
* [[مؠتھ]] ژامَن
* مؠتھ ژامَن تہٕ [[مَٹَر|نیٛول کرٕ]]
* مٹر ژامَن
* [[تریل]] تہٕ ژامَن
* ژامَن مۄنٛجہِ قٔلؠیہِ
* [[گٕچھ|کنہٕ گٕچھ]] ژامَن
* گۄگجہِ آرٕ تہٕ ژامَن
* ژامَن وانٛگن
== ژیٚٹنہِ تہٕ رایتہٕ ==
* [[زامُت دۄد]]
* [[مُجہِ ژیٚٹِنؠ]]
* [[ڈوٗن|ڈوٗنؠ]]مُجہِ ژیٚٹِنؠ
* [[زیٚریشت]] ژیٚٹِنؠ ، Barberry
* انار دانہٕ ژیٚٹِنؠ ([[دٲن]] بیٛول ژیٚٹِنؠ)
* [[زِرِش]] ژیٚٹِنؠ ، Blackcurrants
* ٲلچہِ ژیٚٹِنؠ، sour cherries نوٗنہٕ چھِرکاو
* گۄردول ژیٚٹِنؠ، sour plum
* پُدنہٕ ژیٚٹِنؠ/ بُران
* رُوانٛگن ژیٚٹِنؠ
* رُوانٛگن ہچہِ ژیٚٹِنؠ
* [[مرژٕ وانٛگن|مرژٕوانٛگن]] ژیٚٹِنؠ
* [[رۄہن|رۄہنہٕ]] ژیٚٹِنؠ
* کِشمِش ژیٚٹِنؠ
* ژوٗنٛٹھؠ تہٕ دانہِ ول ژیٚٹِنؠ
* ٲلو بُخار ژیٚٹِنؠ
* مُجہِ ژیٚٹِنؠ (تَلِتھ در)
* بُزِتھ ندٕرؠ ژیٚٹِنؠ
* بُزٕ/پھٹہٕ وانٛگن
* دۄد ال/الہٕ رایتہٕ
== تَلِتھ ماز ==
* ماز/کۄکر کانتی
* مَژھ بٔرِتھ کریل
* مٹر مَژھ
* سۄژَل ژَروَن
* [[ہیٚڑَر]] ژھاگٕلؠ، بۄکہٕ ونہِ تہِ کرٛؠہنہٕ ماز
* تٔلِتھ [[کوڈ|کٲڈؠ]]
* کٲڈؠ پکوڑ
== گاڈ ==
سری نگر شَہَر کس [[صۆوُر، سِریٖنَگَر|صۆوُر]] علاقس مَنٛز آنٛچار سَرس مَنٛز ژھایہِ گاڈ ہنٛد ؤری وادن ہنٛد رؠواج۔<ref name="Bhat-2024">{{ویب حَوالہٕ|last=Bhat|first=Muzamil|date=28 January 2024|title=Kashmir: Fishermen in Anchar lake brace up for 'shadow fishing'|url=https://www.siasat.com/kashmir-fishermen-in-anchar-lake-brace-up-for-shadow-fishing-2966025/|access-date=8 February 2024|website=The Siasat Daily|language=en-US}}</ref>
* ندٕرؠ تہٕ گاڈ عیٖذن تہٕ [[کأشِرؠ بٹہٕ تہوار#گاڑ بتہٕ|گاڈ بتس]] پؠٹھ بناونہٕ یِوان۔
* [[مُج|مُجہٕ]] [[گاڈ]]
* ہاکھ گاڈ
* گاڈٕ تہٕ گۄگجہِ/مۄنٛجہِ/بَنٛدپوٗپی
* گاڈٕ تہٕ ژوٗنٛٹؠ (نیٖل/سبز ژوٗنٛٹؠ)
* گاڈٕ قٔلؠیہِ
* رُوانٛگن/ٹماٹر گاڈ
* [[کۄنٛگ|کۄنٛگہٕ]] گاڈ
* گاڈٕ لیٚج
* گاڈ تہٕ [[اۆبُج]]
* ہۄگاڈٕ تہٕ ہاکھ یا [[بُم]]
* ہۄگاڈ ژیٛۆٹ
* کَنٛز تہٕ گاڈ/گُرَن رننہٕ یِوان {{مانے|خمیر|Fermented}} در مگر غٲر شۄاب ترٛیش مَنٛز یَتھ سٔدرٕ کَنٛز ونان چھِ۔
* فرِ/پھَرِ ، smoked fish
* پھَرِ تہٕ ہاکھ
== سلاد ==
* سلاد، ژٔٹِتھ سبزین ہُنٛد اَکھ پلیٹ یُس [[لٲر]]، ٹماٹر تہٕ گازرِ چھِ، یُس أکِس تھالہِ پؠٹھ مزکٔنؠ گول گول کٔرِتھ سجاونہٕ یِوان چھُ۔
* رازمَہ سلاد/چاٹ۔<ref name="Wani-2023"/>
== تۆمُل ==
[[File:Kashmiri_pulao_(cropped).JPG|thumb|کٲشُر [[پۄلاؤ|پۄلاو]]]]
* ''[[بتہٕ|بَتہٕ]]''.
* ''بُزٕ بتہٕ'', fried rice.
* ''وۄزُل بتہٕ'', واریاہ طاقتی کھؠن [[بیٚیہِ زُو]] زنانن خٲطرٕ۔{{citation needed|date=March 2024}}
* ''تایہِ بتہٕ''
* گٕچہٕ پۄلاو۔
* مٹر پۄلاو
* [[تٔہر]]
* [[کھؠژٕر]]
* نینہٕ کۄنٛگہٕ کھؠژٕر
* وٲر (Salted Rice Pudding with kernels of walnuts or intestines of sheep or goat)کٲشِرؠ بٹن ہِنٛدِ خاندرٕکؠ شۆروٗع وِزِ یا یگنہٕ پَوَت وِزِ۔
* مایِر، [[بتہٕ|بتُک]] نوٗنہٕ دار پُڈِنٛگ یُس پتلہٕ زامُت دۄد سٟتؠ رننہٕ چھُ یوان یَتھ نِش عام طور پٲٹھؠ تھنہٕ الگ چھُ یوان کرنہٕ۔
* یاجہِ، پاکنٲوِتھ تہٕ سٹیٖم-رٔنِتھ نوٗنہٕ تۆمل-اوٹ کیک۔
* بتہٕ لایہِ، مُر-مُرے، چِورٕ rice munchies<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;"></sup>
* بیٛٲلؠ تۆمُل، ہُریمٕتہِ خمیر کٔرِتھ نوِ پھوٹِتھ دانہِ بیٲلؠ چھِ یہِ لذیذ ناشتہٕ دِوان۔
== ژۄچہِ ==
* [[کٔنکہٕ اوٹ|کٔنکہٕ]]ژۆٹ
* پۄراٹ
* پوٗرؠ
* ژھٔر ژۆٹ
* زِرؠ ژۆٹ
* تۆملہٕ ژۆٹ
* درٛانہٕ، rice bread crumbs
* [[مکٲے اوٹ|مکٲے]] ژۆٹ
* [[گؠو]] ژۆٹ
* مکٲے وۄر
* [[غٲرؠ]] ژۆٹ
* غٲرؠ پوٗرِ
* [[وٕشکہٕ اوٹ|وٕشکہٕ]] ژۆٹ
== ٹھوٗل ==
کینٛہہ دیہی علاقن مَنٛز، [[کانٛگٕر|کانٛگرِ]] مَنٛز اَکھ یا زٕ [[ٹھوٗل]] لگاونک روایت چھ پریتھ فرد جانان۔<ref name="Hussain-2021">{{ویب حَوالہٕ|last=Hussain|first=Umran|date=5 December 2021|title=The Traditional Bond Between An Egg And A Kangri In Kashmir|url=https://kashmirradar.com/story/the-traditional-bond-between-an-egg-and-a-kangri-in-kashmir/15597/|access-date=9 April 2022|website=The Kashmir Radar}}{{مۄردٕ جوڈ|date=May 2026}}</ref>
* ''ٹھوٗل مۄنٛڈ'' آملیٹ۔ <ref>{{کِتاب حَوالہٕ|last=Ganju|first=Chandramukhi|title=Kashmiri Cuisine Koshur Saal|date=2012|publisher=Sterling Publishers Pvt. Ltd.|isbn=978-81-207-7720-0|location=New Delhi|page=60}}</ref>
* ہاکھ تہٕ ٹھوٗل
* [[پرٛؠزدَر]] تہٕ ٹھوٗل ، کۄپوٲرِس مَنٛز کھؠوان
* وۄستہٕ ہاکھ تہٕ ٹھوٗل
* زۄمبرٕ ٹھوٗل تہٕ دال
* ٹھوٗلہٕ زۄمبوٗر
* گۄگجہِ آرٕ تہٕ زۄمبرٕ ٹھوٗل
* زۄمبرٕ ٹھوٗل تہٕ رُوانٛگن ہچہِ
* [[File:Capra_falconeri_hepteneri.jpg|thumb|مارخور]]ٹھوٗل تہٕ [[اۆبُج]]
== شِکار ==
[[File:Ducks_on_Lake_Dal,_Kashmir_(8142492655).jpg|thumb|ڈلس مَنٛز بطخ]]
پوٗرٕ کشمیرس مَنٛز چھِ پرٛؠتھ دۄہ نمبلن مَنٛز اَکھ اندازٕ مطٲبق 50-60 جاناوار مارنہٕ یوان۔<ref>{{ویب حَوالہٕ|last=Rashid|first=Afshan|date=9 May 2017|title=Following a poacher in the heart of Kashmir's wetlands|url=https://freepresskashmir.news/2017/05/09/following-a-poacher-in-the-heart-of-kashmirs-wetlands/|access-date=16 June 2022|website=Free Press Kashmir}}</ref>
برطانوی ہندوستانس مَنٛز اوس ''[[مارخور]]'' ساروٕے کھۄتہٕ مشکل کھیلن مَنٛز شمار کرنہٕ یوان۔<ref>{{Cite news|last=Ganaie|first=Nazir|date=25 April 2022|title=Markhor{{!}}The Camouflaged Cliffhangers of Kashmir's Mountains|journal=Greater Kashmir|url=https://www.greaterkashmir.com/life-style/markhorthe-camouflaged-cliffhangers-of-kashmirs-mountains|accessdate=22 May 2023}}</ref> یہِ چھ دُنؠیاہک سارِوٕے کھۄتہٕ بھڑ جنگلؠ ژھاوُل۔<ref>{{ویب حَوالہٕ|title=KASHMIR MARKHOR RECOVERY PROJECT|url=https://www.wti.org.in/projects/kashmir-markhor-recovery-project/|access-date=22 May 2023|website=WTI|language=en-US}}</ref>
ہِندوستٲنؠ [[جنٛگٕلؠ سور]] اوس ہمالیٲیی علاقس مَنٛز ڈوگرہ فوجی جنرل مہاراجہ [[گۄلاب سِنٛگھ|گۄلاب سنگھن]] متعارف کرنوومٗت۔<ref name="Ali-2023">{{Cite news|last=Ali|first=Jehangir|date=18 May 2023|title=Outcry as wild boars reappear in Kashmir after decades|journal=AlJazeera|url=https://www.aljazeera.com/news/2023/5/18/outcry-as-wild-boars-reappear-in-kashmir-after-decades|accessdate=22 May 2023}}</ref> امیُٛک ماز اوس ڈوگراہن تہٕ سکھن خٲطرٕ اَکھ بہتٔریٖن لذیذ مانٛنہٕ یوان، مگر 1947 پتہٕ مسلم اکثریتی علاقس مَنٛز آیہ امچہِ آبٲدی کم گژھن۔<ref name="Ali-2023" />
شِکار پکوان چھِ:
* پچھِن دۄمپۄکھتہٕیتھ کشمیرس مَنٛز ونٛدس مَنٛز کھؠن ہنٛد بادشاہ ونٛنہٕ چھُ یوان، یہِ چھُ اَکھ لذیذ مانٛنہٕ یوان تہٕ چھِ کٲشِرؠ پنڈثھ تہٕ کھؠوان یم عام طور کۄکُر چھِنہٕ کھؠوان۔<ref name="Kaul-2023">{{ویب حَوالہٕ|last=Kaul|first=Prof Upendra|date=4 December 2023|title=Come Winter and Come our Special Cuisine|url=https://www.greaterkashmir.com/editorial-page-2/come-winter-and-come-our-special-cuisine/|access-date=8 February 2024|website=Greater Kashmir|language=en-US}}</ref>
* [[بَطُخ|بطُخ]] [[پالکھ]]
* بطُخ تہٕ زامُت دۄد
* گۄگجہِ تہٕ بطُخ
* شِکار روغن جوش، شِکار کۆرمٕتِس جانورس روغن جوش بناونہٕ یِوان۔
* شِکار تہٕ ندٕرؠ
* شِکار ([[بَطُخ]] یا [[پٔچھِن]]) تہٕ [[ہَنٛد]]
[[File:Goji_Rajma_Masala_(11962820385).jpg|thumb|رازمہ گۄگجہِ]]
== دالہٕ ==
کٲشِرؠ پنڈتھ یم سبزی خور ٲس تہٕ یم نہٕ گنڈٕ تہٕ ٹماٹر تہٕ کھؠوان ٲس تم ٲس دالہِ بَٹہٕ ناوٕ سٟتؠ زاننہٕ یوان ۔<ref>{{ویب حَوالہٕ|last=Noorani|first=A.G.|date=16 June 2011|title=Culture and cuisine|url=https://frontline.thehindu.com/other/article30175819.ece|access-date=9 April 2022|website=Frontline}}</ref>
* دال ندٕرؠ
* [[وارِمُٹھ دال]] Black Turtle Beans
* وارِمُٹھ گۄگجہِ
* رازمہ شب دیگ
* [[رازمَہ دال]]
* [[رازمَہ گۄگجہِ|رازمہ گۄگجہِ]]
* گۄگجہِ آرٕ تہٕ رازمَہ
* [[رازمَہ ہؠمٛبہٕ]]<nowiki/>green beans
* دال ڈبہِ ، رؠوٲیتی دالہٕ [[دۄد|اوم دۄدس]] مَنٛز تہٕ مسالہٕ ترٛٲوِتھ بناوان
* [[چَنہٕ بٲگلہٕ]] dried baegle dal
* رازمَہ نَدٕرؠ
* ٹھوٗل رازمَہ یَخٕنؠ
* وانٛگن پَچہِ تہٕ مۄنٛگہٕ دال
== خمیر در کھؠن ==
مختٔلف قٕسمٕک کشمیری آنٛچار چھِ:
* آنٛچار (کۄکر، ماز، گاڈٕ، اَمبہٕ، ژیرٕ، ژوٗنٛٹؠ، بَنٛدگوٗپی ، نَدٕرؠ، مُجہِ، ہاکھ بیٚتَر۔۔۔۔۔)
== وَتہِ کھؠن ==
[[File:Kashmiri_street_food_(8139530127).jpg|thumb|نَدٕرؠ مۄنٛجہِ ]]
* [[مکاے وٕٹ|مَکٲے ؤٹ]] بُزِٹھ
* بُزِتھ غٲر
* مۄنٛجہِ گُلؠ یا مٲسہٕ یا غٲرؠ گُلؠ
* [[File:Puris_(Kashmiri_Fried_Bread)_with_Vendor_-_Old_City_-_Srinagar_-_Jammu_&_Kashmir_-_India_(26564862530).jpg|thumb|پوٗرؠ]]نَدٕرؠ مۄنٛجہِ
* تندوٗری چِکن
* تَلِتھ کباب
* مٹن کیٖمہٕ سموسہٕ، کۄکر کیٖمہٕ سموسہٕ
* الہٕ پوش مۄنٛڈ
* اولَو مۄنٛڈ، مۄنٛجہِ وۄر
* ڈُلؠ ژیٚٹِنؠ
* تِلہٕ کرٕ
* مۄنٛگہٕ مسالہٕ
* مٹر
* ژوٗنٛٹھؠ پکوڑٕ
* وانٛگن پکوڑٕ
* اولَو چُرمہٕ
* گَنٛڈٕ تہٕ پالَکھ پکوڑ
* کرُٛہُن مسالہٕ/ڈب ماہا
* رازمَہ مسالہٕ
* مسالہٕ ژۆٹ
* ''ٹھوٗل ژھۆٹ''
* دستار کتلم
* تۄبرُک حلوٕ پۄراٹہٕ
* [[جلگروز]]
5h1cnaju5s639wp12wrnkrje2o6fhtk
رُکُن:Nadeemulhaqmir-bot/log/2026/6
2
30298
142895
142753
2026-06-25T18:05:20Z
Nadeemulhaqmir-bot
9480
باٹ چھُ اَز دۄہُک لاگ مَحفوٗظ کَران.
142895
wikitext
text/x-wiki
==1-6-2026==
==== [[کلاڈ (زَبانہِ ہُنٛد ماڈَل)]] - ([[Special:Diff/139788|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/139789|فَرَق]]) ====
# <nowiki> یئ </nowiki><b> -> </b><nowiki>ییَ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ی</nowiki>
==== [[مایکروسافٹ]] - ([[Special:Diff/139790|فَرَق]]) ====
# <nowiki> دنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>ییَ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ی</nowiki>
==== [[سایب بن خلاد]] - ([[Special:Diff/139791|فَرَق]]) ====
# <nowiki> ==زٲتی زِندگی== </nowiki><b> -> </b><nowiki>== ذٲتی زِندگی ==</nowiki>
# <nowiki> {{Stub}} </nowiki><b> -> </b><nowiki>{{نامُکَمَل مَضموٗن}}</nowiki>
# <nowiki> {{Databox}} </nowiki><b> -> </b><nowiki>{{مولوٗماتھ}}</nowiki>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[ساے]] - ([[Special:Diff/139792|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ی</nowiki>
==== [[ساینا نہوال]] - ([[Special:Diff/139793|فَرَق]]) ====
# <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/139794|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ی</nowiki>
==== [[مایرہ]] - ([[Special:Diff/139795|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ی</nowiki>
==== [[مایکل چی]] - ([[Special:Diff/139796|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ی</nowiki>
==== [[مایک ٹایسن]] - ([[Special:Diff/139797|فَرَق]]) ====
# <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/139798|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ی</nowiki>
==== [[تلچھَٹ حوض]] - ([[Special:Diff/139799|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki>
# <nowiki> مربع </nowiki><b> -> </b><nowiki>چَکور</nowiki>
# <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/139800|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> انسان </nowiki><b> -> </b><nowiki>اِنسان</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ۅ </nowiki><b> -> </b><nowiki>ۄ</nowiki>
# <nowiki> ہٕنز </nowiki><b> -> </b><nowiki>ہٕنٛز</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <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/139801|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> دارالحکومت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki>
# <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/139802|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <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/139803|فَرَق]]) ====
# <nowiki> انسان </nowiki><b> -> </b><nowiki>اِنسان</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>ییٚلاج</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/139804|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> شاعری </nowiki><b> -> </b><nowiki>شٲیری</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہٕنز </nowiki><b> -> </b><nowiki>ہٕنٛز</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <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-6-2026==
==== [[اِسلٲمی فَلسفہٕ]] - ([[Special:Diff/139900|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تِہ </nowiki><b> -> </b><nowiki>تہِ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/139901|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/139902|فَرَق]]) ====
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> گۄڈنیُٛک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <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/139903|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> کرنہ </nowiki><b> -> </b><nowiki>کَرنہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/139904|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/139905|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> کرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مشہور </nowiki><b> -> </b><nowiki>مَشہوٗر</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <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/139906|فَرَق]]) ====
# <nowiki> اِستعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سیاستدان </nowiki><b> -> </b><nowiki>سِیاسَتھ دان</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یِہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> {{Stub}} </nowiki><b> -> </b><nowiki>{{نامُکَمَل مَضموٗن}}</nowiki>
==== [[آیرلینٛڈ]] - ([[Special:Diff/139907|فَرَق]]) ====
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> ھ. </nowiki><b> -> </b><nowiki>ھ۔</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[شُمٲلی آیرلینٛڈ]] - ([[Special:Diff/139908|فَرَق]]) ====
# <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/139909|فَرَق]]) ====
# <nowiki> ئین </nowiki><b> -> </b><nowiki>ئین</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[مایکل مَلارکی]] - ([[Special:Diff/139910|فَرَق]]) ====
# <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/139911|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[لویی پاسچر]] - ([[Special:Diff/139912|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[مَسجدِ نبوی]] - ([[Special:Diff/139913|فَرَق]]) ====
# <nowiki> ۓ </nowiki><b> -> </b><nowiki>ۓ</nowiki>
==3-6-2026==
==== [[اینٛڈی سیٚرکِس]] - ([[Special:Diff/140027|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140028|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[لِیٛدٕر دٔرؠیاو]] - ([[Special:Diff/140029|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[سِنٛد دٔرؠیاو]] - ([[Special:Diff/140030|فَرَق]]) ====
# <nowiki> معاون </nowiki><b> -> </b><nowiki>سہارٕ</nowiki>
==== [[شِکاگو]] - ([[Special:Diff/140031|فَرَق]]) ====
# <nowiki> دُنیاہَس </nowiki><b> -> </b><nowiki>دُنؠیاہَس</nowiki>
# <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki>
==== [[لولاپالوزا]] - ([[Special:Diff/140032|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/140033|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki>
# <nowiki> شاعر </nowiki><b> -> </b><nowiki>شٲیِر</nowiki>
# <nowiki> شاعری </nowiki><b> -> </b><nowiki>شٲیری</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140034|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> دُنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
==== [[موبایل سیکورٹی]] - ([[Special:Diff/140035|فَرَق]]) ====
# <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/140036|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <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/140037|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki>
# <nowiki> جنگس </nowiki><b> -> </b><nowiki>جَنٛگس</nowiki>
# <nowiki> حکوٗمت </nowiki><b> -> </b><nowiki>حوٚکوٗمَتھ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> دارالحکومت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki>
# <nowiki> دنیاہٕک </nowiki><b> -> </b><nowiki>دُنؠیاہٕک</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> ضِلعہٕ </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> گھرس </nowiki><b> -> </b><nowiki>گرس</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <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/140038|فَرَق]]) ====
# <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/140039|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <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/140040|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[عبدالرحمان الجبرتی]] - ([[Special:Diff/140041|فَرَق]]) ====
# <nowiki> ۔. </nowiki><b> -> </b><nowiki>۔۔</nowiki>
==4-6-2026==
==== [[ستلج]] - ([[Special:Diff/140131|فَرَق]]) ====
# <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>
==== [[جوٗن 4]] - ([[Special:Diff/140132|فَرَق]]) ====
# <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/140133|فَرَق]]) ====
# <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یونیورسٹی </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>
==== [[ٹموتھی ونٹر]] - ([[Special:Diff/140134|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> سٲتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> کرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مشہور </nowiki><b> -> </b><nowiki>مَشہوٗر</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[ہیپاٹایٹس B]] - ([[Special:Diff/140135|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <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/140136|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <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/140137|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <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/140138|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <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/140139|فَرَق]]) ====
# <nowiki> بھارتی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> حاصل </nowiki><b> -> </b><nowiki>حٲصِل</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> شامل </nowiki><b> -> </b><nowiki>شٲمِل</nowiki>
# <nowiki> ضلعہٕ </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140140|فَرَق]]) ====
# <nowiki> چَھ </nowiki><b> -> </b><nowiki>چھَ</nowiki>
==== [[عِنایَت خان]] - ([[Special:Diff/140141|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> جنگس </nowiki><b> -> </b><nowiki>جَنٛگس</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہندوستٲنی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <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/140142|فَرَق]]) ====
# <nowiki> ۔. </nowiki><b> -> </b><nowiki>۔۔</nowiki>
==5-6-2026==
==== [[بابا شُکُر الدیٖن ولی]] - ([[Special:Diff/140224|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki>
# <nowiki> دُنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <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/140225|فَرَق]]) ====
# <nowiki> گۄڈنیُٛک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> ت. </nowiki><b> -> </b><nowiki>ت۔</nowiki>
==== [[زٔڈؠبَل]] - ([[Special:Diff/140226|فَرَق]]) ====
# <nowiki> ضلعہٕ </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
==== [[پامپر]] - ([[Special:Diff/140228|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> و. </nowiki><b> -> </b><nowiki>و۔</nowiki>
==== [[ہاوڑہ ریلوے سِٹیشن]] - ([[Special:Diff/140229|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/140230|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140231|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==6-6-2026==
==== [[فریدالدین عطار]] - ([[Special:Diff/140294|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> بییہ </nowiki><b> -> </b><nowiki>بیٚیہِ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> کھوتہ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <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/140295|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/140296|فَرَق]]) ====
# <nowiki> انسان </nowiki><b> -> </b><nowiki>اِنسان</nowiki>
# <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/140297|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
==== [[زین الدیٖن ولی]] - ([[Special:Diff/140298|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سٲتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> متاثر </nowiki><b> -> </b><nowiki>مُتٲثِر</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==7-6-2026==
==== [[اسلامس منٛز توبہٕ]] - ([[Special:Diff/140387|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <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/140388|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> حأصل </nowiki><b> -> </b><nowiki>حٲصِل</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140389|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مربع </nowiki><b> -> </b><nowiki>چَکور</nowiki>
# <nowiki> موسیقی </nowiki><b> -> </b><nowiki>موٗسیٖقی</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یِہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki>
# <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/140390|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> == حوالہ == </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سماجی </nowiki><b> -> </b><nowiki>سَمٲجی</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <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/140391|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> == حوالہ == </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یہ </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/140392|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چھے </nowiki><b> -> </b><nowiki>چھےٚ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> حأصل </nowiki><b> -> </b><nowiki>حٲصِل</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> کرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/140393|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/140394|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/140395|فَرَق]]) ====
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> حکوٗمت </nowiki><b> -> </b><nowiki>حوٚکوٗمَتھ</nowiki>
# <nowiki> دُنیاہُک </nowiki><b> -> </b><nowiki>دُنؠیاہُک</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki>
# <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/140396|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[جۆم-وَرمُل لٲن]] - ([[Special:Diff/140397|فَرَق]]) ====
# <nowiki> دُنیاہُک </nowiki><b> -> </b><nowiki>دُنؠیاہُک</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[چایی وان سِٹیشن]] - ([[Special:Diff/140398|فَرَق]]) ====
# <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/140399|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <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/140400|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ۓ </nowiki><b> -> </b><nowiki>ۓ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==8-6-2026==
==== [[علی شاہ بُخاری]] - ([[Special:Diff/140491|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> ڈویژن </nowiki><b> -> </b><nowiki>ڈِویجَن</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <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/140492|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> م. </nowiki><b> -> </b><nowiki>م۔</nowiki>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[اِسلام ہِندوستانس مَنٛز]] - ([[Special:Diff/140493|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہندوستٲنی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/140494|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تِہ </nowiki><b> -> </b><nowiki>تہِ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> صحیح </nowiki><b> -> </b><nowiki>صٔحیٖح</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> مقامی </nowiki><b> -> </b><nowiki>مُقٲمی</nowiki>
# <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/140495|فَرَق]]) ====
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> ۓ </nowiki><b> -> </b><nowiki>ۓ</nowiki>
==== [[اُمِ حرم]] - ([[Special:Diff/140496|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تِہ </nowiki><b> -> </b><nowiki>تہِ</nowiki>
# <nowiki> == حوالہٕ == </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140497|فَرَق]]) ====
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> چھے </nowiki><b> -> </b><nowiki>چھےٚ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <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/140498|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> چھے </nowiki><b> -> </b><nowiki>چھےٚ</nowiki>
# <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/140499|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> صحیح </nowiki><b> -> </b><nowiki>صٔحیٖح</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140500|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
==== [[ہند رجب سُنٛد قتل]] - ([[Special:Diff/140501|فَرَق]]) ====
# <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/140502|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> چھے </nowiki><b> -> </b><nowiki>چھےٚ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیاہن </nowiki><b> -> </b><nowiki>دُنؠیاہن</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> صحیح </nowiki><b> -> </b><nowiki>صٔحیٖح</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> استاد </nowiki><b> -> </b><nowiki>وۄستاد</nowiki>
# <nowiki> ۅ </nowiki><b> -> </b><nowiki>ۄ</nowiki>
# <nowiki> ہٕنز </nowiki><b> -> </b><nowiki>ہٕنٛز</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <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/140503|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[چایی وان]] - ([[Special:Diff/140504|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==9-6-2026==
==== [[قایِد آباد]] - ([[Special:Diff/140579|فَرَق]]) ====
# <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/140580|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[کیٛوپن آب و ہَوٲیی ورگہٕ-بنٛدی]] - ([[Special:Diff/140581|فَرَق]]) ====
# <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/140582|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[ابوٗ بکر البغدادی]] - ([[Special:Diff/140583|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> جنگن </nowiki><b> -> </b><nowiki>جَنٛگن</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> استاد </nowiki><b> -> </b><nowiki>وۄستاد</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> م. </nowiki><b> -> </b><nowiki>م۔</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[2026 مِنٛڈاناؤ بُنیُل]] - ([[Special:Diff/140584|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/140585|فَرَق]]) ====
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> == حوالہٕ == </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
# <nowiki> سماجی </nowiki><b> -> </b><nowiki>سَمٲجی</nowiki>
# <nowiki> شامل </nowiki><b> -> </b><nowiki>شٲمِل</nowiki>
# <nowiki> صحیح </nowiki><b> -> </b><nowiki>صٔحیٖح</nowiki>
# <nowiki> ضروری </nowiki><b> -> </b><nowiki>ضۆروٗری</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مجموعی </nowiki><b> -> </b><nowiki>سۆمبرُنی</nowiki>
# <nowiki> ہندوستانی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <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/140586|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140587|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <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/140588|فَرَق]]) ====
# <nowiki> شاعری </nowiki><b> -> </b><nowiki>شٲیری</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> ل. </nowiki><b> -> </b><nowiki>ل۔</nowiki>
==== [[پرَٛیوٗزَن واد]] - ([[Special:Diff/140589|فَرَق]]) ====
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
==== [[جامع مسجد ترٕٛہ گام]] - ([[Special:Diff/140590|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[اُمِ حرم]] - ([[Special:Diff/140591|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[نُسیبہ بنت کعب]] - ([[Special:Diff/140592|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[اَبوٗ تُراب]] - ([[Special:Diff/140593|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==10-6-2026==
==== [[کِم سے رون]] - ([[Special:Diff/140708|فَرَق]]) ====
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <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/140709|فَرَق]]) ====
# <nowiki> سٕندؠ </nowiki><b> -> </b><nowiki>سٟنٛدؠ</nowiki>
# <nowiki> گھرَس </nowiki><b> -> </b><nowiki>گرَس</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <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/140710|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تِہ </nowiki><b> -> </b><nowiki>تہِ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> ضروری </nowiki><b> -> </b><nowiki>ضۆروٗری</nowiki>
# <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/140711|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تِہ </nowiki><b> -> </b><nowiki>تہِ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دارالحکومت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki>
# <nowiki> دنیاہُک </nowiki><b> -> </b><nowiki>دُنؠیاہُک</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> مربع </nowiki><b> -> </b><nowiki>چَکور</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یِہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <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/140712|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
==== [[عمر الفاروق مسجد]] - ([[Special:Diff/140713|فَرَق]]) ====
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منٛز </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>
==== [[مسجد ابو حجاج]] - ([[Special:Diff/140714|فَرَق]]) ====
# <nowiki> {{Databox}} </nowiki><b> -> </b><nowiki>{{مولوٗماتھ}}</nowiki>
==== [[امام نووی]] - ([[Special:Diff/140715|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> بییہ </nowiki><b> -> </b><nowiki>بیٚیہِ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> سنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> صحیح </nowiki><b> -> </b><nowiki>صٔحیٖح</nowiki>
# <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/140716|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[مِصری ہایروگلیفٕس]] - ([[Special:Diff/140717|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[سِکَندَرِ اعظم]] - ([[Special:Diff/140718|فَرَق]]) ====
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <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/140719|فَرَق]]) ====
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[گوٗگٕل میٖٹ]] - ([[Special:Diff/140720|فَرَق]]) ====
# <nowiki> ژ. </nowiki><b> -> </b><nowiki>ژ۔</nowiki>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[سٹیسی کِنٛگ]] - ([[Special:Diff/140721|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <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/140722|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تنقید </nowiki><b> -> </b><nowiki>تَنقیٖد</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> شامل </nowiki><b> -> </b><nowiki>شٲمِل</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مشہور </nowiki><b> -> </b><nowiki>مَشہوٗر</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/140723|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تنقید </nowiki><b> -> </b><nowiki>تَنقیٖد</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> جنگس </nowiki><b> -> </b><nowiki>جَنٛگس</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مخالف </nowiki><b> -> </b><nowiki>مُخٲلِف</nowiki>
# <nowiki> ہٕنز </nowiki><b> -> </b><nowiki>ہٕنٛز</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/140724|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/140725|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> د. </nowiki><b> -> </b><nowiki>د۔</nowiki>
==== [[جارجِس ژَمپوراکِس]] - ([[Special:Diff/140726|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[اِستیگَفار]] - ([[Special:Diff/140727|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==11-6-2026==
==== [[ماو ژٕ تُنٛگ]] - ([[Special:Diff/140868|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> سیاستدان </nowiki><b> -> </b><nowiki>سِیاسَتھ دان</nowiki>
# <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/140869|فَرَق]]) ====
# <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/140870|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <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/140871|فَرَق]]) ====
# <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/140872|فَرَق]]) ====
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
==== [[فرٛانسُک صٔدٕر]] - ([[Special:Diff/140873|فَرَق]]) ====
# <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/140874|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[اَمریٖکُک صٔدٕر]] - ([[Special:Diff/140875|فَرَق]]) ====
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <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/140876|فَرَق]]) ====
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
==== [[الہ آباد یوٗنِوَرسِٹی]] - ([[Special:Diff/140877|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> قائم </nowiki><b> -> </b><nowiki>قٲیِم</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مقامی </nowiki><b> -> </b><nowiki>مُقٲمی</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> یوٗنیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <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/140878|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تِہ </nowiki><b> -> </b><nowiki>تہِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>ییٚلاج</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہندوستٲنی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> بِھ </nowiki><b> -> </b><nowiki>بھِ</nowiki>
# <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/140879|فَرَق]]) ====
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
==== [[مِنٛڈاناو]] - ([[Special:Diff/140880|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/140881|فَرَق]]) ====
# <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/140882|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki>
==== [[سِکَندَرِ اعظم]] - ([[Special:Diff/140883|فَرَق]]) ====
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
==== [[ساحل گپتا]] - ([[Special:Diff/140884|فَرَق]]) ====
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
==== [[چایی وان]] - ([[Special:Diff/140885|فَرَق]]) ====
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
==== [[ستلج]] - ([[Special:Diff/140886|فَرَق]]) ====
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
==== [[عِنایَت خان]] - ([[Special:Diff/140887|فَرَق]]) ====
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
==== [[تلچھَٹ حوض]] - ([[Special:Diff/140888|فَرَق]]) ====
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
==== [[تھاے زَبان]] - ([[Special:Diff/140889|فَرَق]]) ====
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
==12-6-2026==
==== [[سَلمان خان]] - ([[Special:Diff/141025|فَرَق]]) ====
# <nowiki> دنیاہٕک </nowiki><b> -> </b><nowiki>دُنؠیاہٕک</nowiki>
==== [[بوب پیکوُڈ]] - ([[Special:Diff/141026|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141027|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141028|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تنقید </nowiki><b> -> </b><nowiki>تَنقیٖد</nowiki>
# <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> معاون </nowiki><b> -> </b><nowiki>سہارٕ</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> وقت </nowiki><b> -> </b><nowiki>وَقٕت</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <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/141029|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <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/141030|فَرَق]]) ====
# <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/141031|فَرَق]]) ====
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[جۆم تہٕ کٔشیٖر ہُنٛد ؤزیٖر اعلیٰ]] - ([[Special:Diff/141032|فَرَق]]) ====
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> گۄڈٕنیُک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <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/141033|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[بَنٛگلہ دیٖشُک ؤزیٖرِ اعظم]] - ([[Special:Diff/141034|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <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/141035|فَرَق]]) ====
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki>
==== [[ٹرٛاپِکی روٗدٕ وَنہٕ آب و ہَوا]] - ([[Special:Diff/141036|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141037|فَرَق]]) ====
# <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/141038|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> دارالحکومت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki>
# <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/141039|فَرَق]]) ====
# <nowiki> تٕہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <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/141040|فَرَق]]) ====
# <nowiki> == زٲتی زِندگی == </nowiki><b> -> </b><nowiki>== ذٲتی زِندگی ==</nowiki>
# <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki>
# <nowiki> {{Databox}} </nowiki><b> -> </b><nowiki>{{مولوٗماتھ}}</nowiki>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[موٗدؠ مٕتؠن شٲیِرن ہُنٛد سماج]] - ([[Special:Diff/141041|فَرَق]]) ====
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[سیٚمؠتھن]] - ([[Special:Diff/141042|فَرَق]]) ====
# <nowiki> کُھ </nowiki><b> -> </b><nowiki>کھُ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==13-6-2026==
==== [[خالد ابو الفضل]] - ([[Special:Diff/141184|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> انسانی </nowiki><b> -> </b><nowiki>اِنسٲنی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </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>
==== [[کیشیا علی]] - ([[Special:Diff/141185|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> آکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعاون </nowiki><b> -> </b><nowiki>سہکٲری</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> نائب صدر </nowiki><b> -> </b><nowiki>نٲیِب صٔدٕر</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> چٕھ </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/141186|فَرَق]]) ====
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[ہَوٲیی سرٛیٚہہ]] - ([[Special:Diff/141187|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141188|فَرَق]]) ====
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
==== [[مِصری پونٛڑ]] - ([[Special:Diff/141189|فَرَق]]) ====
# <nowiki> د. </nowiki><b> -> </b><nowiki>د۔</nowiki>
==== [[مِصرُک اِسلٲمی ثقافتی مرکز]] - ([[Special:Diff/141190|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> ضلعس </nowiki><b> -> </b><nowiki>ضِلس</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki>
# <nowiki> مربع </nowiki><b> -> </b><nowiki>چَکور</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <nowiki> مجموعی </nowiki><b> -> </b><nowiki>سۆمبرُنی</nowiki>
# <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/141191|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ۍ </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>
==== [[نُوح ہا میم کیلر]] - ([[Special:Diff/141192|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعاون </nowiki><b> -> </b><nowiki>سہکٲری</nowiki>
# <nowiki> تٕہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> حأصل </nowiki><b> -> </b><nowiki>حٲصِل</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki>
# <nowiki> شاعر </nowiki><b> -> </b><nowiki>شٲیِر</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> مٕہ </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>
==== [[رقیہ واریس مقصود]] - ([[Special:Diff/141193|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki>
# <nowiki> کرنہ </nowiki><b> -> </b><nowiki>کَرنہٕ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> چٕھ </nowiki><b> -> </b><nowiki>چھٕ</nowiki>
# <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/141194|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> نژاد </nowiki><b> -> </b><nowiki>نَسٕل</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ہ. </nowiki><b> -> </b><nowiki>ہ۔</nowiki>
# <nowiki> ۍ </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>
==== [[جۆم تہٕ کٔشیٖر ہِنٛدؠ گورنرن ہِنٛز فہرست]] - ([[Special:Diff/141195|فَرَق]]) ====
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> گۄڈٕنیُک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <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/141196|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> بیاکھ </nowiki><b> -> </b><nowiki>بیٛاکھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> دعوی </nowiki><b> -> </b><nowiki>دعوا</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <nowiki> نژاد </nowiki><b> -> </b><nowiki>نَسٕل</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> یونیورسٹی </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>
==14-6-2026==
==== [[جینن ہِنٛز فہرست]] - ([[Special:Diff/141310|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
==== [[ابراہیم موگرہ]] - ([[Special:Diff/141311|فَرَق]]) ====
# <nowiki> {{Databox}} </nowiki><b> -> </b><nowiki>{{مولوٗماتھ}}</nowiki>
==== [[حامِد الگر]] - ([[Special:Diff/141312|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> یونیورسٹی </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>
==== [[عمر القادری]] - ([[Special:Diff/141313|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پاکستانی </nowiki><b> -> </b><nowiki> پٲکِستٲنؠ</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> منٛز </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>
==== [[علی جکوپی]] - ([[Special:Diff/141314|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مشہور </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>
==== [[وایل حلاق]] - ([[Special:Diff/141315|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> مقامی </nowiki><b> -> </b><nowiki>مُقٲمی</nowiki>
# <nowiki> یتھ </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>
==== [[عُثمان اِبن سعید الدرمی]] - ([[Special:Diff/141316|فَرَق]]) ====
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مشہور </nowiki><b> -> </b><nowiki>مَشہوٗر</nowiki>
# <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/141317|فَرَق]]) ====
# <nowiki> اردو </nowiki><b> -> </b><nowiki>اُردوٗ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕندۍ </nowiki><b> -> </b><nowiki>سٟنٛدؠ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/141318|فَرَق]]) ====
# <nowiki> اردو </nowiki><b> -> </b><nowiki>اُردوٗ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مشترکہ </nowiki><b> -> </b><nowiki>مُشتَرکہٕ</nowiki>
# <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/141319|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اردو </nowiki><b> -> </b><nowiki>اُردوٗ</nowiki>
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> زیادہ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> ضِلعہٕ </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> استاد </nowiki><b> -> </b><nowiki>وۄستاد</nowiki>
# <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/141320|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> مشہور </nowiki><b> -> </b><nowiki>مَشہوٗر</nowiki>
# <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/141321|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دعوی </nowiki><b> -> </b><nowiki>دعوا</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </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>
==== [[شمسی علی]] - ([[Special:Diff/141322|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ضلعہٕ </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </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>
==== [[بَحرِ روٗمی آب و ہَوا]] - ([[Special:Diff/141323|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <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/141324|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مقامی </nowiki><b> -> </b><nowiki>مُقٲمی</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> مٕہ </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>
==== [[نُوح ہا میم کیلر]] - ([[Special:Diff/141325|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[رقیہ واریس مقصود]] - ([[Special:Diff/141326|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[ابراہیم ابو محمد]] - ([[Special:Diff/141327|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==15-6-2026==
==== [[ایلان مَسٕک]] - ([[Special:Diff/141393|فَرَق]]) ====
# <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# فرما ہَٹاوَن
==== [[ایلان مَسٕکٕنؠ دولت]] - ([[Special:Diff/141394|فَرَق]]) ====
# <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/141395|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141396|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> شاعری </nowiki><b> -> </b><nowiki>شٲیری</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> ضلعس </nowiki><b> -> </b><nowiki>ضِلس</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/141397|فَرَق]]) ====
# <nowiki> اردو </nowiki><b> -> </b><nowiki>اُردوٗ</nowiki>
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مجموعی </nowiki><b> -> </b><nowiki>سۆمبرُنی</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <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/141398|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> حکوٗمت </nowiki><b> -> </b><nowiki>حوٚکوٗمَتھ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <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/141399|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
# <nowiki> ۅ </nowiki><b> -> </b><nowiki>ۄ</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[عزیز الحق (سکالر، پیدٲیش 1903)]] - ([[Special:Diff/141400|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> سہُ </nowiki><b> -> </b><nowiki>سُہ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> ضلعس </nowiki><b> -> </b><nowiki>ضِلس</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </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>
==== [[اسماعیل الفارقی]] - ([[Special:Diff/141401|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> چھے </nowiki><b> -> </b><nowiki>چھےٚ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki>
# <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> مشترکہ </nowiki><b> -> </b><nowiki>مُشتَرکہٕ</nowiki>
# <nowiki> یونیورسٹی </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>
==== [[ابراہیم موگرہ]] - ([[Special:Diff/141402|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/141403|فَرَق]]) ====
# <nowiki> ۔. </nowiki><b> -> </b><nowiki>۔۔</nowiki>
==== [[زید شاکر]] - ([[Special:Diff/141404|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==16-6-2026==
==== [[شيخ احمد اَلفاروقی اَسرہندی]] - ([[Special:Diff/141521|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> بییہ </nowiki><b> -> </b><nowiki>بیٚیہِ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <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/141522|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اِستعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141523|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مشترکہ </nowiki><b> -> </b><nowiki>مُشتَرکہٕ</nowiki>
# <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/141524|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> س. </nowiki><b> -> </b><nowiki>س۔</nowiki>
==== [[2026 بَنٛگلہ دیٖش ہۆلہٕ ۂج وبا]] - ([[Special:Diff/141525|فَرَق]]) ====
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[2026 فیٖفا عالمی کپ]] - ([[Special:Diff/141526|فَرَق]]) ====
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/141527|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> بییہ </nowiki><b> -> </b><nowiki>بیٚیہِ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سہُ </nowiki><b> -> </b><nowiki>سُہ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> نومبر </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>
==== [[سمندری طوفان باب]] - ([[Special:Diff/141528|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> قۭمتی </nowiki><b> -> </b><nowiki>قٟمتی</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <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/141529|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[عباد بن عبد اللہ بن الزبیر]] - ([[Special:Diff/141530|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==17-6-2026==
==== [[ممتاز محل]] - ([[Special:Diff/141655|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> جنگس </nowiki><b> -> </b><nowiki>جَنٛگس</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یہ </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>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[بقلاوہ]] - ([[Special:Diff/141656|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki>
# <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/141657|فَرَق]]) ====
# <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[اِسرٲیلی-فلسطیٖنی تنازٕ]] - ([[Special:Diff/141658|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> رِیاسَت </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <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/141659|فَرَق]]) ====
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئیل </nowiki><b> -> </b><nowiki>ئیل</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[رابرٹ کارڈیشیَن]] - ([[Special:Diff/141660|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141661|فَرَق]]) ====
# <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/141662|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[کیٹلِن جیٚنر]] - ([[Special:Diff/141663|فَرَق]]) ====
# <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/141664|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[کورٹنی کارڈیشیَن]] - ([[Special:Diff/141665|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[کلویی کارڈیشیَن]] - ([[Special:Diff/141666|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[کَیلی جیٚنر]] - ([[Special:Diff/141667|فَرَق]]) ====
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[غزہ نسل کشی]] - ([[Special:Diff/141668|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <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/141669|فَرَق]]) ====
# <nowiki> دُنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
==== [[تمنا بھاٹیہ]] - ([[Special:Diff/141670|فَرَق]]) ====
# <nowiki> مئی </nowiki><b> -> </b><nowiki>مٔی</nowiki>
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
# <nowiki> ٘ </nowiki><b> -> </b><nowiki>ٚ</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[2026 ایٖران جَنٛگ]] - ([[Special:Diff/141671|فَرَق]]) ====
# <nowiki> ئیل </nowiki><b> -> </b><nowiki>ئیل</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==18-6-2026==
==== [[مہاشویتا دیوی]] - ([[Special:Diff/141726|فَرَق]]) ====
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
==== [[رَییٖس مُحمد]] - ([[Special:Diff/141727|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[قمر احمد]] - ([[Special:Diff/141728|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ؠ. </nowiki><b> -> </b><nowiki>ؠ۔</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[کارڈیشیَن خاندان]] - ([[Special:Diff/141729|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مقبول </nowiki><b> -> </b><nowiki>مَقبوٗل</nowiki>
# <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/141730|فَرَق]]) ====
# <nowiki> دُنیاہَس </nowiki><b> -> </b><nowiki>دُنؠیاہَس</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[کرِسٹِیانو رونالڈو]] - ([[Special:Diff/141731|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> کھوتہ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/141732|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> دنیاہن </nowiki><b> -> </b><nowiki>دُنؠیاہن</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <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/141733|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==19-6-2026==
==== [[سیپٹِک شاک]] - ([[Special:Diff/141805|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141806|فَرَق]]) ====
# <nowiki> انتہائی </nowiki><b> -> </b><nowiki>اِنتِہٲیی</nowiki>
# <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki>
# <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/141807|فَرَق]]) ====
# <nowiki> == زٲتی زِندگی == </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>
==== [[2016 رؠتہٕ کٲلؠ اولَمپِکس]] - ([[Special:Diff/141808|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/141809|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دارالحکومت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <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/141810|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <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/141811|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مشہور </nowiki><b> -> </b><nowiki>مَشہوٗر</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==20-6-2026==
==== [[لیپٹِن]] - ([[Special:Diff/141974|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <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/141975|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <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/141976|فَرَق]]) ====
# <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/141977|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> دنیاہٕک </nowiki><b> -> </b><nowiki>دُنؠیاہٕک</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <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/141978|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> دوا </nowiki><b> -> </b><nowiki>دَوا</nowiki>
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> ضروری </nowiki><b> -> </b><nowiki>ضۆروٗری</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <nowiki> قیمت </nowiki><b> -> </b><nowiki>قٟمَتھ</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> یئ </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>
==== [[غٲر سٹیرایڈل اینٹی انفلیمیٹری دوا]] - ([[Special:Diff/141979|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> {{Databox}} </nowiki><b> -> </b><nowiki>{{مولوٗماتھ}}</nowiki>
==== [[کٲشِرؠ کھؠنَن ہِنٛز فہرست]] - ([[Special:Diff/141980|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/141981|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> حأصل </nowiki><b> -> </b><nowiki>حٲصِل</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> دوا </nowiki><b> -> </b><nowiki>دَوا</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> کرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> محفوظ </nowiki><b> -> </b><nowiki>مۄحفوٗظ</nowiki>
# <nowiki> وقت </nowiki><b> -> </b><nowiki>وَقٕت</nowiki>
# <nowiki> ورژن </nowiki><b> -> </b><nowiki>ؤرجَن</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ٘ </nowiki><b> -> </b><nowiki>ٚ</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki>
# <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/141982|فَرَق]]) ====
# <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/141983|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/141984|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ضلعس </nowiki><b> -> </b><nowiki>ضِلس</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/141985|فَرَق]]) ====
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <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/141986|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141987|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> دوا </nowiki><b> -> </b><nowiki>دَوا</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <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/141988|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <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/141989|فَرَق]]) ====
# <nowiki> ==حوالہ== </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
==== [[علم تفسیر]] - ([[Special:Diff/141990|فَرَق]]) ====
# <nowiki> ==حوالہ== </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
==== [[ایلوپیشیا یوٗنِوَرسیلِس]] - ([[Special:Diff/141991|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/141992|فَرَق]]) ====
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
==== [[روٹا وایرس ویکسیٖن]] - ([[Special:Diff/141993|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ضروری </nowiki><b> -> </b><nowiki>ضۆروٗری</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/141994|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/141995|فَرَق]]) ====
# <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/141996|فَرَق]]) ====
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دُنیاہُک </nowiki><b> -> </b><nowiki>دُنؠیاہُک</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/141997|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki>
# <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/141998|فَرَق]]) ====
# <nowiki> ٕ. </nowiki><b> -> </b><nowiki>ٕ۔</nowiki>
==== [[پت پھؠپھُر]] - ([[Special:Diff/141999|فَرَق]]) ====
# <nowiki> پُھ </nowiki><b> -> </b><nowiki>پھُ</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[سیپسِس]] - ([[Special:Diff/142000|فَرَق]]) ====
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
# <nowiki> ۓ </nowiki><b> -> </b><nowiki>ۓ</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==21-6-2026==
==== [[پرویز رَسوٗل]] - ([[Special:Diff/142101|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[1987 جۆم تہٕ کٔشیٖر ایٚسمبلی چُناو]] - ([[Special:Diff/142102|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
==== [[1983 جۆم تہٕ کٔشیٖر لیجِسلیٹو ایٚسمبلی چُناو]] - ([[Special:Diff/142103|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[فیٖفا عالمی کپ]] - ([[Special:Diff/142104|فَرَق]]) ====
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <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/142105|فَرَق]]) ====
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
==== [[کٲشِرؠ کھؠنَن ہِنٛز فہرست]] - ([[Special:Diff/142106|فَرَق]]) ====
# <nowiki> ۔. </nowiki><b> -> </b><nowiki>۔۔</nowiki>
==== [[قٲضی نِثار]] - ([[Special:Diff/142107|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اسلام </nowiki><b> -> </b><nowiki>اِسلام</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> حکوٗمت </nowiki><b> -> </b><nowiki>حوٚکوٗمَتھ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سُند </nowiki><b> -> </b><nowiki>سُنٛد</nowiki>
# <nowiki> شاعر </nowiki><b> -> </b><nowiki>شٲیِر</nowiki>
# <nowiki> شاعری </nowiki><b> -> </b><nowiki>شٲیری</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> ضِلعہٕ </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki>
# <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki>
# <nowiki> کٔرۍمٕتۍ </nowiki><b> -> </b><nowiki>کٔرؠمٕتؠ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki>
# <nowiki> مقبول </nowiki><b> -> </b><nowiki>مَقبوٗل</nowiki>
# <nowiki> مقامی </nowiki><b> -> </b><nowiki>مُقٲمی</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
# <nowiki> ہندوستٲنۍ </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> ہٕنز </nowiki><b> -> </b><nowiki>ہٕنٛز</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <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/142108|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==22-6-2026==
==== [[سیسِل ہیو ٹِنٛڈیل-بِسکو]] - ([[Special:Diff/142257|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> ڈویژن </nowiki><b> -> </b><nowiki>ڈِویجَن</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[ٹیکرولیمس]] - ([[Special:Diff/142258|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/142259|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[ٹرٛیکٹر]] - ([[Special:Diff/142260|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[کیمرا]] - ([[Special:Diff/142261|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
# <nowiki> {{Databox}} </nowiki><b> -> </b><nowiki>{{مولوٗماتھ}}</nowiki>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[کم از کم تبدیٖلی ہِنٛز بؠمٲرؠ]] - ([[Special:Diff/142262|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/142263|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/142264|فَرَق]]) ====
# <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/142265|فَرَق]]) ====
# <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/142266|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> دنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <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/142267|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <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/142268|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <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/142269|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <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/142270|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دُنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <nowiki> ژِھ </nowiki><b> -> </b><nowiki>ژھِ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[2024 جۆم تہٕ کٔشیٖر قونوٗن ساز ایٚسمبلی چُناو]] - ([[Special:Diff/142271|فَرَق]]) ====
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> گۄڈٕنیُک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مقبول </nowiki><b> -> </b><nowiki>مَقبوٗل</nowiki>
==== [[2003 کاتالان عَلاقٲیی چُناو]] - ([[Special:Diff/142272|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki>
==== [[برینڈن گو]] - ([[Special:Diff/142273|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> حاصل </nowiki><b> -> </b><nowiki>حٲصِل</nowiki>
# <nowiki> == حوالہ == </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
# <nowiki> شامل </nowiki><b> -> </b><nowiki>شٲمِل</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <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/142274|فَرَق]]) ====
# <nowiki> ۔. </nowiki><b> -> </b><nowiki>۔۔</nowiki>
==23-6-2026==
==== [[جیمٕز کونولی]] - ([[Special:Diff/142370|فَرَق]]) ====
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/142371|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <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/142372|فَرَق]]) ====
# <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[بی ٹی ایس سِنٛگلٕز نَژَن سٲزی]] - ([[Special:Diff/142373|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/142374|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/142375|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[کمبل]] - ([[Special:Diff/142376|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[سَماج]] - ([[Special:Diff/142377|فَرَق]]) ====
# <nowiki> ِ. </nowiki><b> -> </b><nowiki>ِ۔</nowiki>
==== [[بی ٹوٗ بی یُک نژن سٲزی]] - ([[Special:Diff/142378|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <nowiki> ک. </nowiki><b> -> </b><nowiki>ک۔</nowiki>
==== [[بی ٹوٗ بی (بینٛڈ)]] - ([[Special:Diff/142379|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <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/142380|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
==== [[2014 جۆم تہٕ کٔشیٖر قونوٗن ساز ایٚسمبلی چُناو]] - ([[Special:Diff/142381|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[2024 ایٖرٲنؠ صٔدرٲتی چُناو]] - ([[Special:Diff/142382|فَرَق]]) ====
# <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/142383|فَرَق]]) ====
# <nowiki> ئیل </nowiki><b> -> </b><nowiki>ئیل</nowiki>
# <nowiki> ئیس </nowiki><b> -> </b><nowiki>ئیس</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[نیوٗر]] - ([[Special:Diff/142384|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[ہاٹ فیل]] - ([[Special:Diff/142385|فَرَق]]) ====
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> مجموعی </nowiki><b> -> </b><nowiki>سۆمبرُنی</nowiki>
# <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/142386|فَرَق]]) ====
# <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/142387|فَرَق]]) ====
# <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/142388|فَرَق]]) ====
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <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/142389|فَرَق]]) ====
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/142390|فَرَق]]) ====
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> دنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/142391|فَرَق]]) ====
# <nowiki> ۔. </nowiki><b> -> </b><nowiki>۔۔</nowiki>
==24-6-2026==
==== [[عمر عبداللہ]] - ([[Special:Diff/142653|فَرَق]]) ====
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <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/142654|فَرَق]]) ====
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
==== [[2026 تٲمِل ناڈوٗ قونوٗن ساز ایٚسمبلی چُناو]] - ([[Special:Diff/142655|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[پلیٹِنم]] - ([[Special:Diff/142656|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <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/142657|فَرَق]]) ====
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <nowiki> ورژن </nowiki><b> -> </b><nowiki>ؤرجَن</nowiki>
# <nowiki> ویکیپیڈیا </nowiki><b> -> </b><nowiki>وِکیٖپیٖڈیا</nowiki>
# <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/142658|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> ضروری </nowiki><b> -> </b><nowiki>ضۆروٗری</nowiki>
# <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/142659|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/142660|فَرَق]]) ====
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki>
# <nowiki> حاصل </nowiki><b> -> </b><nowiki>حٲصِل</nowiki>
# <nowiki> == حوالہ == </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
# <nowiki> شامل </nowiki><b> -> </b><nowiki>شٲمِل</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/142661|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <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/142662|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <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/142663|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> انسانی </nowiki><b> -> </b><nowiki>اِنسٲنی</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <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/142664|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <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/142665|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <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/142666|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <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/142667|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/142668|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <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/142669|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[وِنچیٚسٹر، اِنٛڈیانا]] - ([[Special:Diff/142670|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[وایٹِنٛگ، اِنٛڈیانا]] - ([[Special:Diff/142671|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ویسٹفیٖلڈ، اِنٛڈیانا]] - ([[Special:Diff/142672|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[پَچھِم لافایت، اِنٛڈیانا]] - ([[Special:Diff/142673|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[واشِنٛگٹَن، اِنٛڈیانا]] - ([[Special:Diff/142674|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[وارساو، اِنٛڈیانا]] - ([[Special:Diff/142675|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[واباش، اِنٛڈیانا]] - ([[Special:Diff/142676|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[وِکٹوریہ وُڈز، اِنٛڈیانا]] - ([[Special:Diff/142677|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <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/142678|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[یوٗنیَن سِٹی، اِنٛڈیانا]] - ([[Special:Diff/142679|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ٹِپٹَن، اِنٛڈیانا]] - ([[Special:Diff/142680|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ٹیرا ہوٹ، اِنٛڈیانا]] - ([[Special:Diff/142681|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ٹیٚل سِٹی، اِنٛڈیانا]] - ([[Special:Diff/142682|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[سلیوان، اِنٛڈیانا]] - ([[Special:Diff/142683|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ساؤتھ پورٹ، اِنٛڈیانا]] - ([[Special:Diff/142684|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[شیلبیٖویل، اِنٛڈیانا]] - ([[Special:Diff/142685|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[سیمور، اِنٛڈیانا]] - ([[Special:Diff/142686|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[سکارٹسبرگ، اِنٛڈیانا]] - ([[Special:Diff/142687|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[سیلیٚم، اِنٛڈیانا]] - ([[Special:Diff/142688|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[رشویل، اِنٛڈیانا]] - ([[Special:Diff/142689|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[روکپورٹ، اِنٛڈیانا]] - ([[Special:Diff/142690|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[روچیٚسٹر، اِنٛڈیانا]] - ([[Special:Diff/142691|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[رایزِنٛگ سَن، اِنٛڈیانا]] - ([[Special:Diff/142692|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[رِچمٔنٛڈ، اِنٛڈیانا]] - ([[Special:Diff/142693|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[رینسلیر، اِنٛڈیانا]] - ([[Special:Diff/142694|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[پرِٛنٛسٹَن، اِنٛڈیانا]] - ([[Special:Diff/142695|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[پورٹلینٛڈ، اِنٛڈیانا]] - ([[Special:Diff/142696|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[پورٹِج، اِنٛڈیانا]] - ([[Special:Diff/142697|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[پلَے مَوُتھ، اِنٛڈیانا]] - ([[Special:Diff/142698|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[پیٖٹرزبرگ، اِنٛڈیانا]] - ([[Special:Diff/142699|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[پیٚروٗ، اِنٛڈیانا]] - ([[Special:Diff/142700|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[اوکلینٛڈ سِٹی، اِنٛڈیانا]] - ([[Special:Diff/142701|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[وۄتُر ؤرنن، اِنٛڈیانا]] - ([[Special:Diff/142702|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[نوبلزویل، اِنٛڈیانا]] - ([[Special:Diff/142703|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[نِو ہیوَن، اِنٛڈیانا]] - ([[Special:Diff/142704|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[نِوکاسل، اِنٛڈیانا]] - ([[Special:Diff/142705|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[نِو البانی، اِنٛڈیانا]] - ([[Special:Diff/142706|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[نَپانی، اِنٛڈیانا]] - ([[Special:Diff/142707|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[منسی، اِنٛڈیانا]] - ([[Special:Diff/142708|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ماؤنٛٹ ؤرنن، اِنٛڈیانا]] - ([[Special:Diff/142709|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[مونٛٹپیلیر، اِنٛڈیانا]] - ([[Special:Diff/142710|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[مانٹِسیٚلو، اِنٛڈیانا]] - ([[Special:Diff/142711|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[مِچیٚل، اِنٛڈیانا]] - ([[Special:Diff/142712|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[مِشاواکا، اِنٛڈیانا]] - ([[Special:Diff/142713|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[مِشِگن سِٹی، اِنٛڈیانا]] - ([[Special:Diff/142714|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[مارٹِنٛزویل، اِنٛڈیانا]] - ([[Special:Diff/142715|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[میٚرِیَن، اِنٛڈیانا]] - ([[Special:Diff/142716|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[میڈیسن، اِنٛڈیانا]] - ([[Special:Diff/142717|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لٔگوٹی، اِنٛڈیانا]] - ([[Special:Diff/142718|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لوگَنٛزپورٹ، اِنٛڈیانا]] - ([[Special:Diff/142719|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لِنٹن، اِنٛڈیانا]] - ([[Special:Diff/142720|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لِنٛگٔنیٖر، اِنٛڈیانا]] - ([[Special:Diff/142721|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لؠبنان، اِنٛڈیانا]] - ([[Special:Diff/142722|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لارِنٛسبرگ، اِنٛڈیانا]] - ([[Special:Diff/142723|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لارِنٛس، اِنٛڈیانا]] - ([[Special:Diff/142724|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لیک سِٹیشن، اِنٛڈیانا]] - ([[Special:Diff/142725|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لافایت، اِنٛڈیانا]] - ([[Special:Diff/142726|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[لا پورت، اِنٛڈیانا]] - ([[Special:Diff/142727|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کوکومو، اِنٛڈیانا]] - ([[Special:Diff/142728|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[نوکس، اِنٛڈیانا]] - ([[Special:Diff/142729|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کینڈلویل، اِنٛڈیانا]] - ([[Special:Diff/142730|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[جونزبورو، اِنٛڈیانا]] - ([[Special:Diff/142731|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[جیٚفرسن ویل، اِنٛڈیانا]] - ([[Special:Diff/142732|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[جیسَنویل، اِنٛڈیانا]] - ([[Special:Diff/142733|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ہَنٛٹِنٛگٹَن، اِنٛڈیانا]] - ([[Special:Diff/142734|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ہَنٛٹِنٛگبرگ، اِنٛڈیانا]] - ([[Special:Diff/142735|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ہوبارٹ، اِنٛڈیانا]] - ([[Special:Diff/142736|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ہیمٔنٛڈ، اِنٛڈیانا]] - ([[Special:Diff/142737|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[گرٛیٖنوُڈ، اِنٛڈیانا]] - ([[Special:Diff/142738|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[گرٛیٖنزبرگ، اِنٛڈیانا]] - ([[Special:Diff/142739|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[گرٛیٖنفیٖلڈ، اِنٛڈیانا]] - ([[Special:Diff/142740|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[گرٛیٖنڈیل، اِنٛڈیانا]] - ([[Special:Diff/142741|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[گرٛیٖن کاسل، اِنٛڈیانا]] - ([[Special:Diff/142742|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[گوشٔن، اِنٛڈیانا]] - ([[Special:Diff/142743|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[گیس سِٹی، اِنٛڈیانا]] - ([[Special:Diff/142744|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[گیٚریٹ، اِنٛڈیانا]] - ([[Special:Diff/142745|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[فرٛینٛکلِن، اِنٛڈیانا]] - ([[Special:Diff/142746|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[فرٛینٛکفورٹ، اِنٛڈیانا]] - ([[Special:Diff/142747|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[فورٹ وین، اِنٛڈیانا]] - ([[Special:Diff/142748|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[فِشرز، اِنٛڈیانا]] - ([[Special:Diff/142749|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ایوانزویل، اِنٛڈیانا]] - ([[Special:Diff/142750|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ایٚلوُڈ، اِنٛڈیانا]] - ([[Special:Diff/142751|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ایٚلکارٹ، اِنٛڈیانا]] - ([[Special:Diff/142752|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==25-6-2026==
==== [[ایٚلن گرٛیٖنسِپین]] - ([[Special:Diff/142835|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <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/142836|فَرَق]]) ====
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/142837|فَرَق]]) ====
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
==== [[2026 وینَزوٗیِلا بُنیُل]] - ([[Special:Diff/142838|فَرَق]]) ====
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دارالحکوٗمت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/142839|فَرَق]]) ====
# <nowiki> ُ. </nowiki><b> -> </b><nowiki>ُ۔</nowiki>
==== [[رِیٛوتا کاتایوسے]] - ([[Special:Diff/142840|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[گیم آف تھرٛونز]] - ([[Special:Diff/142841|فَرَق]]) ====
# <nowiki> دُنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[نیپرکسین]] - ([[Special:Diff/142842|فَرَق]]) ====
# <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/142843|فَرَق]]) ====
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[میلوکسکیم]] - ([[Special:Diff/142844|فَرَق]]) ====
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <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/142845|فَرَق]]) ====
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <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/142846|فَرَق]]) ====
# <nowiki> تقریبا </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> علاجس </nowiki><b> -> </b><nowiki>یَلاجس</nowiki>
# <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/142847|فَرَق]]) ====
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[اَیریٖن پیٹری]] - ([[Special:Diff/142848|فَرَق]]) ====
# <nowiki> اردو </nowiki><b> -> </b><nowiki>اُردوٗ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/142849|فَرَق]]) ====
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <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/142850|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/142851|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دوا </nowiki><b> -> </b><nowiki>دَوا</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <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/142852|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/142853|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دوا </nowiki><b> -> </b><nowiki>دَوا</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <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/142854|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[جارج رحال]] - ([[Special:Diff/142855|فَرَق]]) ====
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[پوٗر شِکاگو، اِنٛڈیانا]] - ([[Special:Diff/142856|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ڈیٚلفی، اِنٛڈیانا]] - ([[Special:Diff/142857|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ڈیکاٹر، اِنٛڈیانا]] - ([[Special:Diff/142858|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کرٛاؤن پۄیِنٛٹ، اِنٛڈیانا]] - ([[Special:Diff/142859|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کینلٹن، اِنٛڈیانا]] - ([[Special:Diff/142860|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کووِنٛگٹن، اِنٛڈیانا]] - ([[Special:Diff/142861|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کونرزویل، اِنٛڈیانا]] - ([[Special:Diff/142862|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کولمبیا سِٹی، اِنٛڈیانا]] - ([[Special:Diff/142863|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کولمبس، اِنٛڈیانا]] - ([[Special:Diff/142864|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کلِنٹن، اِنٛڈیانا]] - ([[Special:Diff/142865|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کارمٔل، اِنٛڈیانا]] - ([[Special:Diff/142866|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[چالس ٹاوُن، اِنٛڈیانا]] - ([[Special:Diff/142867|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بیٹسویل، اِنٛڈیانا]] - ([[Special:Diff/142868|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بیٚڈفورڈ، اِنٛڈیانا]] - ([[Special:Diff/142869|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بیٖچ گرٛوٗو، اِنٛڈیانا]] - ([[Special:Diff/142870|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بٹلر، اِنٛڈیانا]] - ([[Special:Diff/142871|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بِکنیل، اِنٛڈیانا]] - ([[Special:Diff/142872|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بوٗنویل، اِنٛڈیانا]] - ([[Special:Diff/142873|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بلوٗمِنٛگٹن، اِنٛڈیانا]] - ([[Special:Diff/142874|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بلفٹن، اِنٛڈیانا]] - ([[Special:Diff/142875|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[برٛازیٖل، اِنٛڈیانا]] - ([[Special:Diff/142876|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[برن، اِنٛڈیانا]] - ([[Special:Diff/142877|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ایٚٹِکا، اِنٛڈیانا]] - ([[Special:Diff/142878|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ایٚنٛڈریسن، اِنٛڈیانا]] - ([[Special:Diff/142879|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[ایٚلیٚکسزینٛڈرِیا، اِنٛڈیانا]] - ([[Special:Diff/142880|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[اَنٛگولا، اِنٛڈیانا]] - ([[Special:Diff/142881|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[آسٹِن، اِنٛڈیانا]] - ([[Special:Diff/142882|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[آرورا، اِنٛڈیانا]] - ([[Special:Diff/142883|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[آبرن، اِنٛڈیانا]] - ([[Special:Diff/142884|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[کرٛافورڈزویل، اِنٛڈیانا]] - ([[Special:Diff/142885|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
==== [[بوبی پرِٛنٕس]] - ([[Special:Diff/142886|فَرَق]]) ====
# <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/142887|فَرَق]]) ====
# <nowiki> دنیا </nowiki><b> -> </b><nowiki>دُنؠیا</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <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/142888|فَرَق]]) ====
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[پونؠ یا آب]] - ([[Special:Diff/142889|فَرَق]]) ====
# <nowiki> اِستعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
==== [[ہایڈروجَن]] - ([[Special:Diff/142890|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[یورینِیَم]] - ([[Special:Diff/142891|فَرَق]]) ====
# <nowiki> ێ </nowiki><b> -> </b><nowiki>یٚ</nowiki>
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[کشمیٖریٹس]] - ([[Special:Diff/142892|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[ترٛام]] - ([[Special:Diff/142893|فَرَق]]) ====
# <nowiki> اِستعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> ژٕھ </nowiki><b> -> </b><nowiki>ژھٕ</nowiki>
==== [[کٲشِرؠ کھؠنَن ہِنٛز فہرست]] - ([[Special:Diff/142894|فَرَق]]) ====
# <nowiki> ۔. </nowiki><b> -> </b><nowiki>۔۔</nowiki>
27nu4wustif0cyuv97xnmrtksu0yet0
2026 مِنٛڈاناو بُنیُل
0
30457
142811
140758
2026-06-25T14:18:24Z
آیات محراج
11062
/* */
142811
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|local-date=8 جوٗن 2026|local-time=07:37:40 [[فلپاینُک معیٲری وقت|PhST]] ([[UTC+8]])|timestamp=2026-06-07 23:37:40|anss-url=us7000srb1|isc-event=|image=Collapsed building in General Santos City - DSWD.jpg|caption=بُنلہِ پتہٕ|duration=30 سیکنٛڈ|map2={{Location map many | Mindanao
| relief = yes
| label =
| lat = 5.600
| long = 125.065
| mark = Bullseye1.png
| marksize = 55
| position = bottom
| caption =
|label2 = جنرل سینٹوس
|lat2 = 6.1167
|long2 = 125.1667
|mark2 = Red pog.svg
|mark2size = 7
|position2 = left
|label3 = ڈیواؤ شہر
|lat3 = 7.0661
|long3 = 125.6094
|mark3 = Orange pog.svg
|mark3size = 7
|position3 = left
|label4 = کورونادل
|lat4 = 6.5006
|long4 = 124.8432
|mark4 = Red pog.svg
|mark4size = 7
|position4 = left
}}|magnitude={{M|w|link=y}} 7.8|depth={{cvt|55.2|km}}|type=Thrust|coordinates={{Coord|5.592|N|125.047|E|region:PH_type:event|display=inline,title}}|intensity={{PEIS|8|MMI|8}}|affected=[[مِنٛڈاناو]], فلپاین<br />[[شمالی سولاویسی]], اِنٛڈونیشِیا|aftershocks=1,100+<br />{{M|w|6.5}} جوٗن 8، 2026 {{small|(مضبوٗط ترین)}}|casualties=41+ موت، 488+ زخمی، 4+ لاپتا (فلپاین)<br />3 زخمی (اِنٛڈونیشِیا)|damage=₱1ارب|fault=[[کوٹاباٹو ٹرینچ]]|tsunami={{convert|1.5|m}}|landslide=Yes}}
8 جوٗن 2026 ہس مَنٛز، 07:37:40 PhST (UTC+8) آو [[فِلِپیٖن|فلپاینس]] مَنٛز [[مِنٛڈاناو]] کِس جۆنوٗبی ساحلس پؠٹھ Mw 7.8 بُنیُل۔ امیُک بُنیُلُک مرکز اوس کابلان پیٹھٕ 26 کلومیٹر (16 میٖل) مغرِب جنوٗب مغربس مَنٛز سارنگانی صوبہٕ کِس بٹھِس پؠٹھ۔یہِ بُنیُل آو کوٹاباٹو [[کھل|کھَلس]] سٟتؠ دباونہٕ سٟتؠ یُس اَکھ بٔڑؠ بُنیِلؠ پٲدٕ کرن وول ڈانٛچہٕ چھُ۔ جۆنوٗبی فلپاینس سٟتؠ سٟتؠ [[اِنٛڈونیشِیا]]، [[ملیشیا]]، [[پالاو]]، [[جاپان]]، [[تایوان]] تہٕ [[پاپوا نیو گنی]] مَنٛز آیہٕ [[سُنامی|سُنامیچ]] شؠچھہِ جٲری کرنہٕ۔ کم از کم گٔیہِ 41 نفر ہلاک، 491 باقٕی زخمی تہٕ ژور گٔیہِ لاپتہ گژھنٕچ اطلاع۔ یہِ بُنیُل اوس 1990 پتہٕ مُلکَس مَنٛز یِنہٕ وول سارِوٕے کھۄتہٕ زیٛادٕ طاقتور تہٕ یہِ اوس پانٛژَن ؤرِین مَنٛز مُلکَس مَنٛز یِنہٕ والؠن سارِوٕے کھۄتہٕ تباہ کُن بُنِیِلہِ مَنٛز اَکھ ماننہٕ یِوان۔<ref name=":2">{{Cite web|date=2026-06-09|title=Outdoor hospitals, cut-off communities as Mindanao quake toll hits 41|url=https://www.abs-cbn.com/news/regions/2026/6/9/outdoor-hospitals-cut-off-communities-as-philippine-quake-toll-hits-41-1428|access-date=2026-06-09|website=ABS-CBN News}}</ref>
==اثر==
===فِلِپیٖن===
فِلِپینس مَنٛز:
[[File:DepEd Mahayahay Elementary School, Malita, Davao Occidental, Mindanao, Philippines - 7.8 Mw Earthquake - 8 June 2026.webm|thumb|School children ]]
[[File:Matanao National High School - Matanao, Davao del Sur, Mindanao, Philippines - 7.8 Mw Earthquake - 8 June 2026.webm|thumb|A collapsed school building in Matanao]]
[[فَیِل:2026 Mindanao earthquake landslide.jpg|thumb|A landslide that trapped four people in Sarangani]]
[[فَیِل:Collapsed building in City of General Santos - 2026.jpg|thumb|Search and rescue operations at a collapsed commerical building in General Santos]]
===اِنٛڈونیشِیا===
[[File:A House destroyed in Sangihe Island, Indonesia.jpg|thumb|A house destroyed in Sangihe Island, North Sulawesi]]
[[File:A house severely damage by earthquake in Sangihe Island, Indonesia.jpg|thumb|Collapsed roof of a house in Sangihe Island, North Sulawesi]]
== حَوالہٕ ==
[[زٲژ:2026 واقعات]]
a78sci0c85wv8zprgho6dua8vcsbms5
فرما:Infobox election
10
30838
142934
142131
2026-06-26T10:28:19Z
آیات محراج
11062
/* */
142934
wikitext
text/x-wiki
<!-- Version cawiki- 2026.04.02
--><includeonly>{{Infobox election/core
|debug = {{{debug|}}} <!-- core: data passed to /core
prepdemo: data passed to /prepare for demography
preprefe: data passed to /prepare for referendum
prepcand: data passed to /prepare for each candidate
prepmult: data passed to /prepare_multi
showblok: data passed to /showblocks. Must be accopanied with a Qnnnnnn of candidate
showrefe: data passed to /showblocks for referendumd
-->
<!-- Manual params -->
|today = {{{today|{{{avui|}}}}}}
|election_name = {{{election_name|{{{nom_eleccio|{{{name|}}} }}} }}}
|type = {{{type|{{{tipus|}}}}}}<!-- only to display in infobox instead of P31, not to calculate -->
<!-- |type_election={{{type_election|}}} --><!-- Used to calculate infobox structure.
available values: direct,two rounds, proportional, double. -->
|campaign = {{{campaign|{{{campanya|}}}}}}
|id_position1 ={{if empty|{{{id_position1|}}}|{{MyValue|IBelection|id_position1}}|A}}
|id_position2 ={{if empty|{{{id_position2|}}}|{{MyValue|IBelection|id_position2}}|B}}
|roundcolor_1 ={{if empty|{{{roundcolor_1|}}}|{{MyValue|IBelection|roundcolor_1}}|#6fc0f2}}
|roundcolor_2 ={{if empty|{{{roundcolor_2|}}}|{{MyValue|IBelection|roundcolor_2}}|#ff7f0e}}
|yes_color={{{yes_color|}}}
|not_color={{{not_color|}}}
|threshold_list={{if empty|{{{threshold_list|}}} <!-- rate(%) of votes received to be displayed at infobox when candidate is not in P991 list -->
|{{{barrera_electoral|}}}
|{{#switch:{{Infobox election/type election|type_election={{{type_election|}}} |item={{{item|}}}}}
|proportional=2 <!-- Default value for "proportional election -->
|20}} }}<!-- Default value for "non-proportional election -->
|blacklist_diagram= {{{blacklist_diagram|}}}<!-- Allow to exclude diagram in property P14226. The value to inform is the Qid of the P180 qualifier of P14226 -->
<!-- Calculated params -->
|lang = {{{lang|}}}
|item = {{{item|}}}
|item_elec1 = <!-- ___________________________when double election or two rounds: take first instance of P527 -->
{{#switch:{{Infobox election/type election|type_election={{{type_election|}}} |item={{{item|}}}}}
|two_rounds|double ={{#titleparts:{{#invoke:Wikidades |claim |separator=/ |editicon=no|formatting=table
|property=P527 |colformat0=raw |qualifier=P1514 |tablesort=1
|rowformat=$0 }}|1|1}}
}}
|item_elec2 =<!-- _______________________________when double election or two rounds: take second instance of P527 -->
{{#switch:{{Infobox election/type election|type_election={{{type_election|}}} |item={{{item|}}}}}
|two_rounds|double ={{#titleparts:{{#invoke:Wikidades |claim |separator=/ |editicon=no|formatting=table
|property=P527 |colformat0=raw |qualifier=P1514 |tablesort=1
|rowformat=$0 }}
|1|2}}
}}
<!-- __________________Previous election of the same recurrent event
It priorize get information from P31 (qualif.P155) and, else, from P155 as a property _______________ -->
|item_prev = {{if then show
|{{#invoke:Wikidades |claim |formatting=table |list=false |editicon=no
|property= P31 |qualifier=P155 |colformat1=raw
|rowformat=$1 }}
|{{#invoke:Wikidades|claim|property=P155 |list=false |formatting=raw|editicon=no}}
}}
|item_elec1_prev =<!-- _________ Previous election event, when double election or two rounds:
take first instance from P527 of the previous election, following same way of "item_prev" ____________ -->
{{#if:{{#invoke:Wikidades |claim |formatting=table |list=false |editicon=no
|property= P31 |qualifier=P155 |colformat1=raw
|rowformat=$1 }}<!-- get prev, if P155 exists as a qualif. of P31 -->
|{{#titleparts:{{#invoke:Wikidades|claim|formatting=table|editicon=no
|property=P527 |colformat0=raw |qualifier=P1545
|rowformat=$0 | separator=/ |tablesort=1
|item={{#invoke:Wikidades |claim |formatting=table |list=false |editicon=no
|property= P31 |qualifier=P155 |colformat1=raw |rowformat=$1}}
}}|1|1}}
|{{#if:{{#invoke:Wikidades|claim|property=P155|formatting=raw|editicon=no}}<!-- get prev, if P155 exists as a property -->
|{{#titleparts:{{#invoke:Wikidades|claim|formatting=table|editicon=no
|property=P527 |colformat0=raw |qualifier=P1545
|rowformat=$0 | separator=/ |tablesort=1
|item={{#invoke:Wikidades|claim|property=P155
|formatting=raw|editicon=no}}}}
|1|1}}
}}
}}
<!-- ________________________ Previous election event, when double election or two rounds:
take first instance from P527 of the previous election ______________ -->
|item_elec2_prev =
{{#if:{{#invoke:Wikidades |claim |formatting=table |list=false |editicon=no
|property= P31 |qualifier=P155 |colformat1=raw
|rowformat=$1 }}<!-- get prev, if P155 exists -->
|{{#titleparts:{{#invoke:Wikidades|claim|formatting=table|editicon=no
|property=P527 |colformat0=raw |qualifier=P1545
|rowformat=$0 | separator=/ |tablesort=1
|item={{#invoke:Wikidades |claim |formatting=table |list=false |editicon=no
|property= P31 |qualifier=P155 |colformat1=raw |rowformat=$1}}
}}|1|2}}
|{{#if:{{#invoke:Wikidades|claim|property=P155|formatting=raw|editicon=no}}<!-- get prev, if P155 exists -->
|{{#titleparts:{{#invoke:Wikidades|claim|formatting=table|editicon=no
|property=P527 |colformat0=raw |qualifier=P1545
|rowformat=$0 | separator=/ |tablesort=1
|item={{#invoke:Wikidades|claim|property=P155
|formatting=raw|editicon=no}}}}
|1|2}}
}}
}}
<!-- ________________________ calculate point in time of "today" vs data election:
1: created, 2: in campaign, 3:election day, 4:already done __________ -->
|moment = {{Infobox election/moment |{{#if:{{{election_date|{{{data_eleccio|}}}}}}
|{{#time:U|{{{election_date|{{{data_eleccio|}}}}}} }}}}
|{{{campaign|}}}|{{{today|}}}|item={{{item|}}} }}
<!-- ***********************************************************************************
* type-election: #switch by several manual values, or P8196 value or
* deducted from ontology: two P527 and two P541, for double election
* two P527 with P31 = voting round, for two rounds
* not a person as a candidate, for proportional
* "direct" for the rest of cases.
* Note: direct and indirect voting have the same presentation on infobox
***********************************************************************************
-->
|type_election ={{Infobox election/type election|type_election={{{type_election|}}} |item={{{item|}}}}}
}}</includeonly><noinclude>{{documentation}}</noinclude>
e002f47dunlqyl1fv0c3vhx1pidg6b4
فرما:Infobox election/core
10
30839
142941
142127
2026-06-26T11:22:56Z
آیات محراج
11062
/* */
142941
wikitext
text/x-wiki
<!-- Version cawiki- 2026.04.02
--><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly>{{#if:{{#invoke:string|match|s={{{debug|}}}|core|ignore_errors=true}} |
* '''INPUT TO core'''
*item = {{{item|}}}
*item_elec1 = {{{item_elec1|}}}
*item_elec2 = {{{item_elec2|}}}
*item_prev = {{{item_prev|}}}
*item_elec1_prev = {{{item_elec1_prev|}}}
*item_elec2_prev = {{{item_elec2_prev|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
*yes_color={{{yes_color|}}}
*not_color={{{not_color|}}}
}}<!-- end if debug-->
<!-- Templatestyles with default colors and format style for whole infobox_election templates
--><templatestyles src="Infobox election/styles.css" /><!--
_______________________________________________________
-->{{infoboxFrame
<!-- Colours, icon and sizes defined as a classes in templatestyles -->
|titleclass = infobox_titlestyle
|aboveclass = infobox_abovestyle
|headerclass = infobox_headerstyle
|labelclass = infobox-label
|datastyle = text-align:start
|captionstyle = font-size:90%;
|bodystyle = font-size: 85%; text-align: left;width:24em;
<!-- title or above (depending on {{MyValue|IBelection|title_above}} )
This line shows on the left:
* the election logo (P154) (if {{MyValue|IBelection|logo_election}}=yes)
* one icon as a background image defined in {{MyValue|IBelection|img_election}}.
* none, else
-->
| {{#ifeq:{{MyValue|IBelection|title_above}}|above|above|title}} = <!-- "title" or "above" selected as a "top line for article name"-->
<!-- icon on top line, when exists
-->{{#if:{{MyValue|IBelection|logo_election}}|<div style="float:left; margin-left: 1px;<!--
--> line-height:{{str len|{{if empty|{{{election_name|}}}| {{Title without disambig}}}} }}px;"><!--
-->{{#invoke:Wikidades |claim |list=false |property=P154
|formatting=[[File:$1|80x40px|{{ROOTPAGENAME}}|link=]]}}</div>
|{{#if:{{MyValue|IBelection|img_election}}|<span style="float:left; margin-left: 3px;"><!--
-->[[File:{{MyValue|IBelection|img_election}}|25px|{{#invoke:Wikidades|getSiteLink|Q5855584}}|class=skin-invert]]</span>}}<!--
-->}}{{if empty|{{{election_name|}}}| {{Title without disambig}}}}
| image = {{{logo|}}}
| image2 = {{{image|{{#invoke:Wikidades |claim |formatting=table |list=false
|property= P18 |qualifier=P2096
|qualifier2=P180|whitelist2={{MyValue|IBelection|is_ballot}}
|rowformat=[[File:$0|300x300px]]$1 |rowsubformat1=</br>$1 }} }}}
<!-- Block general election data: demography and overall resultats -->
| label7 = {{GetLabelFix|P585|lang={{{lang|}}}}}<!-- electoral day -->
| data7 = {{#invoke:Wikidades |claim |formatting=table |tablesort=0
|property= P585 |qualifier=P518
|rowformat=$0$1 |rowsubformat1=, $1
|value={{{election_date|{{{data_eleccio|}}}}}} }}
{{#switch:{{{moment|}}}
|1=<span style="float:right; margin-right: 3px;">[[File:Android Emoji 23f3.svg|18px|class=skin-invert|{{GetLabelFix|Q529711|lang={{{lang|}}}}}]]</span>
|2=<span style="float:right; margin-right: 3px;">[[File:Android Emoji 231b.svg|18px|class=skin-invert|{{GetLabelFix|Q11642595|lang={{{lang|}}}}}]]</span>
|3=<span style="float:right; margin-right: 3px;">[[File:Ballot box current.svg|20px|class=skin-invert|{{GetLabelFix|Q476204|lang={{{lang|}}}}}]]</span>
|}}
| label9 = {{GetLabelFix|Q21146257|lang={{{lang|}}}}}<!-- Tipus -->
| data9 = {{#invoke:Wikidades | claim | property= P31 |list=bestrank |separator=
|value={{{type|}}} }}
| label11 = {{GetLabelFix|P361|lang={{{lang|}}}}}<!-- Part of -->
| data11 = {{#invoke:Wikidades | claim | property= P361 |list=bestrank }}
| data12 = {{#if:{{#ifeq:{{{type_election|}}}|referendum|1}}
{{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}|formatting=table
|whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|<span class=txtquestion<!-- style="font-size:110%; font-style:italic; color:#008000" -->><!--
-->{{if then show|{{#invoke:Wikidades | claim | property= P1476
|list=lang |formatting=table
|rowformat=«$0»}}||<hr>}}</span>
}}
| label15 = {{GetLabelFix|P541|lang={{{lang|}}}}}<!-- office contested -->
| data15 = {{#ifeq:{{{type_election|}}}|double
|{{#invoke:Wikidades | claim | property= P541 |list=bestrank |separator=<br>
|formatting=table |item={{{item_elec1|}}}
|qualifier =P768 |rowsubformat1= — $1<!-- constituency -->
|qualifier2=P1114 or P1342 or P768/P1342<!-- # seats -->
|qualifier3=P2937 |rowsubformat3= ≈ $3<!-- parliamentary term -->
|qualifier4=P642 |rowsubformat4= $4<!-- of ... -->
|qualifier5=P1083 <!-- total seats -->
|rowsubformat5= ({{label|P642|lang={{{lang|}}}}} $5)
|qualifier6=P541/P2097 |colformat6=unit<!-- term of office -->
|rowsubformat6=. {{GetLabelFix|P2097|lang={{{lang|}}}}}: $6
|qualifier7=P4253 or /P4253<!-- # constituencies -->
|rowsubformat7= ({{label|P4253|lang={{{lang|}}}}}:$7)
|rowformat = $2 $5$0$4$7$1$3$6 }}
<hr>
{{#invoke:Wikidades | claim | property= P541 |list=bestrank |separator=<br>
|formatting=table |item={{{item_elec2|}}}
|qualifier =P768 |rowsubformat1= — $1<!-- constituency -->
|qualifier2=P1114 or P1342 or P768/P1342<!-- # seats -->
|qualifier3=P2937 |rowsubformat3= ≈ $3<!-- parliamentary term -->
|qualifier4=P642 |rowsubformat4= $4<!-- of ... -->
|qualifier5=P1083 <!-- total seats -->
|rowsubformat5= ({{label|P642|lang={{{lang|}}}}} $5)
|qualifier6=P541/P2097 |colformat6=unit<!-- term of office -->
|rowsubformat6=. {{GetLabelFix|P2097|lang={{{lang|}}}}}: $6
|qualifier7=P4253 or /P4253<!-- # constituencies -->
|rowsubformat7= ({{label|P4253|lang={{{lang|}}}}}:$7)
|rowformat = $2 $5$0$4$7$1$3$6 }}
|{{#ifeq:{{{type_election|}}}|referendum|<!-- skip when referendum -->
|{{#invoke:Wikidades | claim | property= P541 |list=bestrank |separator=<hr>
|formatting=table
|qualifier =P768 |rowsubformat1= — $1<!-- constituency -->
|qualifier2=P1114 or P1342 or P768/P1342<!-- # seats -->
|qualifier3=P2937 |rowsubformat3= ≈ $3<!-- parliamentary term -->
|qualifier4=P642 |rowsubformat4= $4<!-- of ... -->
|qualifier5=P1083 <!-- total seats -->
|rowsubformat5= ({{label|P642|lang={{{lang|}}}}} $5)
|qualifier6=P541/P2097 |colformat6=unit<!-- term of office -->
|rowsubformat6=. {{GetLabelFix|P2097|lang={{{lang|}}}}}: $6
|qualifier7=P4253 or /P4253<!-- # constituencies -->
|rowsubformat7= ({{label|P4253|lang={{{lang|}}}}}:$7)
|rowformat = $2 $5$0$4$7$1$3$6 }}
}} }}
| label23 = {{GetLabelFix|Q11642595|lang={{{lang|}}}}}<!-- campaign days -->
| data23 = {{#invoke:Wikidades | claim | property= P2047 |formatting=table
|qualifier =P518 |whitelist1={{MyValue|IBelection|is_election_campaign}}
|rowformat = $0|colformat0=unit
|value={{{campaign|}}} }}
| label27 = {{GetLabelFix|P856|lang={{{lang|}}}}}<!-- official web -->
| data27 = {{#if:{{#invoke:Wikidades|validProperty|P856|item={{{item|}}} }}
|{{#ifeq:{{#invoke:Wikidades |claim |property=P856 |list=false |formatting=table
|qualifier=P582 |rowformat=$1 |editicon=no}} | {{somevalue|lang={{{lang|}}}}}<!--
-->|{{#invoke:Wikidades |claim |property=P856 |list=false |formatting=weblink }}<!--
-->|{{#invoke:Wikidades |claim |property=P856 |list=false |formatting=table |colformat0=weblink
|qualifier =P582 |rowsubformat1= → $2$3
|qualifier2=P1065 |rowsubformat2=[[File:Cloud download font awesome.svg|15px|link=$2]]
|qualifier3=P2960 |colformat3=Y |rowsubformat3= <small>($3)</small>
|rowformat=$0$1 }}
}}
}}
| label28 = {{GetLabelFix|P2572|lang={{{lang|}}}}}<!-- Hastag -->
| data28 = {{#invoke:Wikidades | claim | property= P2572 |formatting=[https://hashtags-hub.toolforge.org/$1 #$1]}}
|header30 = {{#if:{{{registrats|}}} {{{votants|}}} {{{cens|}}}{{{valids|}}} {{{nuls|}}} {{{blancs|}}}
{{#invoke:Wikidades |claim | property= P1868 or P1867 or P1831 or P1697 or P5044 or P5045}}
|{{GetLabelFix|Q1339847|lang={{{lang|}}}}} }}<!-- participation -->
| label35 = {{GetLabelFix|P1082|lang={{{lang|}}}}}<!-- population -->
| data35 = {{#invoke:Wikidades | claim | property= P1082 |list=false
|value={{{poblacio|}}} }}
| data40 =
<!--
___________________ Election DEMOGRAPHY block _______________________
-->
<!-- ____________Two rounds election & double position election_______________________________
It is a set of 3 items: one for the election with basic data, winner
and P527 pointing to other two items -one by each round or each position, in case of double-
with candidates and results -->
| data41 ={{#ifeq:{{{type_election|}}}|double
|{{Infobox election/prepare |lang={{{lang|}}}
|case=election
|type_election={{{type_election|}}}
|item={{{item_elec1|}}}
|round_text=<span id="id_position1" style="background:{{{roundcolor_1|}}};color:#ffffff;<!--
-->padding:3.5px 3.5px 3.5px 3.5px;margin:0px 0px 0px 0px;border-radius:100px;text-align:center;<!--
-->font-size:0.8em;">{{{id_position1|}}}</span> <!--
-->''{{#invoke:Wikidades |claim |list=false |editicon=no|property=P541 |formatting=ucfirst
|item={{{item_elec1|}}} }}''<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec1|}}} |property=P1868 |editicon=right}}<!--position-1 -->
|moment={{{moment|}}}
|today={{{today|}}}
|tablestyle="border:2px solid {{{roundcolor_1|}}};"
|barcolor={{{roundcolor_1|}}}
|item_prev={{{item_elec1_prev|}}}
|debug = {{{debug|}}}
}}<!--
-->{{Infobox election/prepare |lang={{{lang|}}}
|case=election
|type_election={{{type_election|}}}
|item={{{item_elec2|}}}
|round_text=<span id="id_position2" style="background:{{{roundcolor_2|}}};color:#ffffff;<!--
-->padding:3.5px 3.5px 3.5px 3.5px;margin:0px 0px 0px 0px;border-radius:100px;text-align:center;<!--
-->font-size:0.8em;">{{{id_position2|}}}</span> <!--
-->''{{#invoke:Wikidades |claim |list=false |editicon=no|property=P541 |formatting=ucfirst
|item={{{item_elec2|}}}}}''<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec2|}}} |property=P1868 |editicon=right}}<!-- position-2 -->
|moment={{{moment|}}}
|tablestyle="border:2px solid {{{roundcolor_2|}}};"
|barcolor={{{roundcolor_2|}}}
|item_prev={{{item_elec2_prev|}}}
|debug = {{{debug|}}}
}} }}
| data43 = {{#ifeq:{{{type_election|}}}|two_rounds
|{{Infobox election/prepare |lang={{{lang|}}}
|case=election
|type_election=two_rounds
|item={{{item_elec1|}}}
|round_text={{GetLabelFix|Q62789940|lang={{{lang|}}}}}<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec1|}}} |property=P1868 |editicon=right}}<!-- round 1 -->
|moment={{{moment|}}}
|tablestyle="border:2px solid {{{roundcolor_1|}}};"
|barcolor={{{roundcolor_1|}}}
|item_prev={{{item_elec1_prev|}}}
|debug = {{{debug|}}}
}}<!--
-->{{#if:{{{item_elec2|}}}<!-- no item_elec2 = only one round -->
|{{Infobox election/prepare |lang={{{lang|}}}
|case=election
|type_election=two_rounds
|item={{{item_elec2|}}}
|round_text={{GetLabelFix|Q62790009|lang={{{lang|}}}}}<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec2|}}} |property=P1868 |editicon=right}}<!-- round 2 -->
|moment={{{moment|}}}
|tablestyle="border:2px solid {{{roundcolor_2|}}};"
|barcolor={{{roundcolor_2|}}}
|item_prev={{{item_elec2_prev|}}}
|debug = {{{debug|}}}
}}
}} }}
| data45 = {{#switch:{{{type_election|}}}|direct|limited|proportional|referendum
={{Infobox election/prepare |lang={{{lang|}}}<!-- direct, proportional and referendum single election -->
|case=election
|type_election=direct
|item={{{item|}}}
|round_text=
|moment={{{moment|}}}
|tablestyle=
|barcolor={{{roundcolor_1|}}}
|item_prev={{{item_prev|}}}
|debug = {{{debug|}}}
}} }}
<!--
___________________ Individual results fom CANDIDATES block _______________________
-->
| header75 = {{#ifexpr:{{{moment|0}}} > 3
<!-- if results are empty, skip to candidates. THIS CONTROL HAS BEEN DEPRECATED (by now)___________
|{{#if:{{#invoke:Wikidades |claim| list=bestrank
| property= P991 |qualifier=P1114 |qualifier2=/P1868
| rowformat=$1$2 |editicon=no}}|1}} -->
|{{GetLabelFix|Q51591359|lang={{{lang|}}} }}<!-- Voting results -->
{{#switch:{{{type_election|}}}|two_rounds|double=
{{#invoke:Wikidades|editAtWikidata|item={{{item_elec1|}}} |property=P726 |editicon=right}}<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec2|}}} |property=P726 |editicon=right}}
|{{#invoke:Wikidades|editAtWikidata|item={{{item|}}} |property=P726 |editicon=right}} }}
|{{GetLabelFix|P726|lang={{{lang|}}} }} }}<!-- Candidatures -->
| data78 = <!-- Results for basic (yes / no) REFERENDUMS _____________
____________________________________________________________________________________________
-->{{#ifeq:{{{type_election|}}}|referendum
|{{if both|{{#property:P8682|from={{{item|}}}}}|{{#property:P8683|from={{{item|}}}}}
|<table>{{#invoke:Wikidades |claim |formatting=table |property=P8683 |colformat0=raw
|qualifier =P642 |colformat1= raw<!-- not used -->
|qualifier2=P642 |colformat2=label<!-- not used -->
|qualifier3=P465 |rowsubformat3= #$3
|qualifier4=/P1697 or /P1868 |colformat4=raw
|qualifier5=/P1346|colformat5= raw
|qualifier6=/P8682|colformat6= raw
|editicon=no
|rowformat={{((}}Infobox election/prepare{{!}}<!--
-->1{{=}}Q41216873{{!}}2{{=}}$2{{!}}3{{=}}$0{{!}}<!--
-->4{{=}}$3{{!}}5{{=}}$4{{!}}6{{=}}$5{{!}}7{{=}}$6{{!}}item={{{item|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}moment{{=}}{{{moment|}}} {{!}}<!--
-->threshold_list{{=}}{{{threshold_list|}}} {{!}} case{{=}} referendum {{!}}<!--
-->yes_color{{=}}{{{yes_color|}}} {{!}} not_color{{=}}{{{not_color|}}} {{!}}<!--
-->debug_referendum{{=}} {{{debug|}}} {{!}} lang{{=}}{{{lang|}}} {{))}} }}
{{#invoke:Wikidades |claim |formatting=table |property=P8682 |colformat0=raw
|qualifier =P642 |colformat1= raw
|qualifier2=P642 |colformat2=label
|qualifier3=P465 |rowsubformat3= #$3
|qualifier4=/P1697 or /P1868 |colformat4=raw
|qualifier5=/P1346|colformat5= raw
|qualifier6=/P8683|colformat6= raw
|editicon=no
|rowformat={{((}}Infobox election/prepare{{!}}<!--
-->1{{=}}Q41216897{{!}}2{{=}}$2{{!}}3{{=}}$0{{!}} <!--
-->4{{=}}$3{{!}}5{{=}}$4{{!}}6{{=}}$5{{!}}7{{=}}$6{{!}}item={{{item|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}moment{{=}}{{{moment|}}} {{!}}<!--
-->threshold_list{{=}}{{{threshold_list|}}} {{!}} case{{=}} referendum {{!}}<!--
-->yes_color{{=}}{{{yes_color|}}} {{!}} not_color{{=}}{{{not_color|}}} {{!}}<!--
-->debug_referendum{{=}} {{{debug|}}} {{!}} lang{{=}}{{{lang|}}} {{))}} }}</table>
<!-- 1): detect format P1111 + P642=yes/no. Then, call /prepare with 1=P642raw, 2=P642lab, 3=P1111-vots, 4=P465-color(opt) -->
|{{#ifeq:{{#invoke:Wikidades |claim |formatting=table |property=P1111
|qualifier =P642 |rowsubformat1=1
|selectvalue1= {{MyValue|IBelection|yes_in_referendum}}
|qualifier2=P642 |rowsubformat2=2
|selectvalue2= {{MyValue|IBelection|no_in_referendum}}
|separator=,|rowformat=$1$2
|editicon=no }}|1,2<!-- when votes for yes and no, means a binary referendum
-->|<table>{{#invoke:Wikidades |claim |formatting=table |property=P1111 |colformat0=raw
|qualifier =P642 |colformat1= raw
|whitelist1= {{MyValue|IBelection|yes_in_referendum}}, {{MyValue|IBelection|no_in_referendum}}
|qualifier2=P642 |colformat2=label
|qualifier3=P465 |rowsubformat3= #$3
|qualifier4=/P1697 or /P1868 |colformat4=raw
|qualifier5=/P1346|colformat5= raw
|editicon=no
|rowformat={{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}2{{=}}$2{{!}}<!--
-->3{{=}}$0{{!}}4{{=}}$3{{!}}5{{=}}$4{{!}}6{{=}}$5{{!}}item={{{item|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}moment{{=}}{{{moment|}}} {{!}}<!--
-->threshold_list{{=}}{{{threshold_list|}}} {{!}} case{{=}} referendum {{!}}<!--
-->yes_color{{=}}{{{yes_color|}}} {{!}} not_color{{=}}{{{not_color|}}} {{!}}<!--
-->debug_referendum{{=}} {{{debug|}}} {{!}} lang{{=}}{{{lang|}}} {{))}} }}</table>
<!-- 2):detect format P726=option +P1111 qualif. Then, call /prepare with 1=P726raw,2=P726lab,3=P1111-vots,4=P465-color(opt) -->
|<table>{{#invoke:Wikidades |claim |formatting=table |property=P726
|colformat0=raw |separator=LF
|qualifier =P726 |colformat1=label
|qualifier2=P1111 |colformat2=raw
|qualifier3=P465 |rowsubformat3=#$3
|qualifier4=/P1697 or /P1868 |colformat4=raw
|qualifier5=/P1346|colformat5= raw
|qualifier6=P1545
|tablesort=6
|editicon=no
|rowformat={{((}}Infobox election/prepare{{!}}1{{=}}$0{{!}}2{{=}}$1{{!}}<!--
-->3{{=}}$2{{!}}4{{=}}$3{{!}}5{{=}}$4{{!}}6{{=}}$5{{!}}item={{{item|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}moment{{=}}{{{moment|}}} {{!}}<!--
-->threshold_list{{=}}{{{threshold_list|}}} {{!}} case{{=}} referendum {{!}}<!--
-->yes_color{{=}}{{{yes_color|}}} {{!}} not_color{{=}}{{{not_color|}}} {{!}}<!--
-->debug_referendum{{=}} {{{debug|}}} {{!}} lang{{=}}{{{lang|}}} {{))}} }}</table>
}}
}} }}
| data80 = <!-- List of candidate and results for direct and proportional election _____________
____________________________________________________________________________________________
-->{{#switch:{{{type_election|}}}|direct|proportional=
{{#if:{{#property:P726|from={{{item|}}}}}<!-- When info is uploaded after elections, may be enter in P991 directly, without P726 -->
|<table>{{#invoke:Wikidades | claim| formatting = table |separator=LF| list = bestrank
| property= P726 |colformat0=label|editicon=no
|qualifier =/P541 |colformat1=raw |rowsubformat1=$1
|qualifier2=/P1697 or /P1868 |rowsubformat2=$2 |colformat2=raw
|qualifier3=/P155 |colformat3=raw |rowsubformat3=$3<!-- void. replaced by {{{item_prev|}}} -->
|qualifier4=P726 |colformat4=raw |rowsubformat4=$4
|qualifier5=P726/P31 |colformat5=raw |rowsubformat5=$5
|qualifier6=P18 or P726/P18 or P991/P18 |rowsubformat6=$6
|qualifier7=P102 or P1268 or P726/P102 |colformat7=raw |rowsubformat7=$7
|qualifier8=P1813 or P726/P1813 |rowsubformat8=$8
|qualifier9=P8972 or P154 or P726/P8972 or P726/P154 |rowsubformat9=$9
|qualifier10=P210 |colformat10=raw|rowsubformat10=$10
|qualifier11=P465 or P726/P465 or P102/P465 |rowsubformat11=$11
|qualifier12=P1111 |rowsubformat12=$12 |colformat12=raw
|qualifier13=P1114 |rowsubformat13=$13 |colformat13=raw
|qualifier14=P1410 |rowsubformat14=$14 |colformat14=raw
|qualifier15=P6149 |rowsubformat15=$15 |colformat15=raw
|qualifier16=P5832 |colformat16=raw
|qualifier17=P1545<!-- to order when no result information yet -->
|qualifier18=P210 |rowsubformat18=$18<!-- P210 in text -->
|qualifier19=P460 |rowsubformat19=$19 |colformat19=raw
| tablesort=14/12/13/17 |sorting={{#ifexpr:{{{moment|0}}} > 3|-1}}<!-- after election, descendent by seats/vots -->
| rowformat= {{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}2{{=}}$2{{!}}4{{=}}$0{{!}}<!--
-->3{{=}}{{{item_prev|}}}{{!}}4{{=}}$4{{!}}5{{=}}$5{{!}}6{{=}}$6{{!}} 7{{=}}$7{{!}}<!--
-->8{{=}}$8{{!}}9{{=}}$9{{!}}10{{=}}$10{{!}}11{{=}}$11{{!}}12{{=}}$12{{!}}<!--
-->13{{=}}$13{{!}}14{{=}}$14{{!}} 15{{=}}$15{{!}}16{{=}}P726{{!}}17{{=}}$0 {{!}}<!--
-->18{{=}}{{{item_round2|}}} {{!}} 19{{=}}{{{item_round2_prev|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}item={{{item|}}}{{!}}coa{{=}}$16{{!}}<!--
-->P210txt{{=}}$18 {{!}} P460equivalent{{=}}$19 {{!}} <!--
-->moment{{=}}{{{moment|}}} {{!}} threshold_list{{=}}{{{threshold_list|}}} {{!}}<!--
-->id_position1{{=}}{{{id_position1|}}} {{!}} id_position2{{=}}{{{id_position2|}}} {{!}}<!--
-->roundcolor_1{{=}}{{{roundcolor_1|}}} {{!}} roundcolor_2{{=}}{{{roundcolor_2|}}} {{!}}<!--
--> debug {{=}} {{{debug|}}} {{!}} case{{=}} candidate {{!}} lang{{=}}{{{lang|}}} {{))}} }}
</table>
|<table>{{#invoke:Wikidades | claim| formatting = table |separator=LF| list = bestrank
| property = P991 |colformat0=raw |editicon=no
|qualifier =/P541 |colformat1=raw |rowsubformat1=$1
|qualifier2=/P1697 or /P1868 |rowsubformat2=$2 |colformat2=raw
|qualifier3=/P155 |colformat3=raw |rowsubformat3=$3<!-- void. replaced by {{{item_prev|}}} -->
|qualifier4=P991 |colformat4=raw |rowsubformat4=$4
|qualifier5=P991/P31 |colformat5=raw |rowsubformat5=$5
|qualifier6=P18 or P991/P18 |rowsubformat6=$6
|qualifier7=P102 or P1268 |colformat7=raw |rowsubformat7=$7
|qualifier8=P1813 or P991/P1813 |rowsubformat8=$8
|qualifier9=P8972 or P154 or P991/P8972 or P991/P154 |rowsubformat9=$9
|qualifier10=P210 |colformat10=raw|rowsubformat10=$10
|qualifier11=P465 or P991/P465 |rowsubformat11=$11
|qualifier12=P1111 |rowsubformat12=$12 |colformat12=raw
|qualifier13=P1114 |rowsubformat13=$13 |colformat13=raw<!-- unused -->
|qualifier14=P1410 |rowsubformat14=$14 |colformat14=raw
|qualifier15=P6149 |rowsubformat15=$15 |colformat15=raw
|qualifier16=P5832 |colformat16=raw
|qualifier17=P1545<!-- to order when no result information yet -->
|qualifier18=P210 |rowsubformat18=$18<!-- P210 in text -->
|qualifier19=P460 |rowsubformat19=$19 |colformat19=raw
| tablesort=14/12/13/17 |sorting={{#ifexpr:{{{moment|0}}} > 3|-1}}<!-- after election, descendent by seats/vots -->
| rowformat= {{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}2{{=}}$2{{!}}4{{=}}$0{{!}}<!--
-->3{{=}}{{{item_prev|}}} {{!}}4{{=}}$4{{!}}5{{=}}$5{{!}}6{{=}}$6{{!}} 7{{=}}$7{{!}}<!--
-->8{{=}}$8{{!}}9{{=}}$9{{!}}10{{=}}$10{{!}}11{{=}}$11{{!}}12{{=}}$12{{!}}<!--
-->13{{=}}$13{{!}}14{{=}}$14{{!}} 15{{=}}$15{{!}}16{{=}}P991{{!}}17{{=}}$0 {{!}}<!--
-->18{{=}}{{{item_round2|}}} {{!}} 19{{=}}{{{item_round2_prev|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}item={{{item|}}}{{!}}coa{{=}}$16{{!}}<!--
-->P210txt{{=}}$18 {{!}} P460equivalent{{=}}$19 {{!}}<!--
-->moment{{=}}{{{moment|}}} {{!}} threshold_list{{=}}{{{threshold_list|}}} {{!}}<!--
--> debug {{=}} {{{debug|}}} {{!}} case{{=}} candidate {{!}} lang{{=}}{{{lang|}}} {{))}} }}
</table>
}} }}
| data82 = <!-- ____________________________________________________________________________________
List of candidate and results for limited voting election _____________
____________________________________________________________________________________________
-->{{#ifeq:{{{type_election|}}}|limited<!--
-->|{{#if:{{#invoke:Wikidades | claim|| list = bestrank
|property= P991 |qualifier =P1410 |editicon=no}}<!-- if seats, aggregate level
-->|<table>{{#invoke:Wikidades | claim| formatting = table |separator=LF| list = bestrank
| property= P991 |colformat0=raw |editicon=no
|qualifier =/P541 |colformat1=raw |rowsubformat1=$1
|qualifier2=/P1697 or /P1868 |rowsubformat2=$2 |colformat2=raw
|qualifier3=/P155 |colformat3=raw |rowsubformat3=$3<!-- void. replaced by {{{item_prev|}}} -->
|qualifier4=P991 |colformat4=raw |rowsubformat4=$4
|qualifier5=P991/P31 |colformat5=raw |rowsubformat5=$5
|qualifier6=P18 or P991/P18 |rowsubformat6=$6
|qualifier7=P102 or P1268 |colformat7=raw |rowsubformat7=$7
|qualifier8=P1813 or P991/P1813 |rowsubformat8=$8
|qualifier9=P8972 or P154 or P991/P8972 or P991/P154 |rowsubformat9=$9
|qualifier10=P210 |colformat10=raw|rowsubformat10=$10
|qualifier11=P465 or P991/P465 |rowsubformat11=$11
|qualifier12=P1111 |rowsubformat12=$12 |colformat12=raw
|qualifier13=P1114 |rowsubformat13=$13 |colformat13=raw
|qualifier14=P1410 |rowsubformat14=$14 |colformat14=raw
|qualifier15=P6149 |rowsubformat15=$15 |colformat15=raw
|qualifier16=P5832 |colformat16=raw
|qualifier17=P1545<!-- to order when no result information yet -->
|qualifier18=P210 |rowsubformat18=$18<!-- P210 in text -->
|qualifier19=P460 |rowsubformat19=$19 |colformat19=raw
| tablesort=14/12/13 |sorting=-1
| rowformat= {{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}4{{=}}$0{{!}}<!--
-->2{{=}}{{#expr:0+0{{#invoke:Wikidades |claim |list=bestrank |property=P991
|qualifier=P1410 |separator=+ |editicon=no|formatting=raw}} }}{{!}}<!--
-->3{{=}}{{{item_prev|}}}{{!}} 4{{=}}$4{{!}}5{{=}}$5{{!}}6{{=}}$6{{!}} 7{{=}}$7{{!}}<!--
-->8{{=}}$8{{!}}9{{=}}$9{{!}}10{{=}}$10{{!}}11{{=}}$11{{!}}12{{=}}$12{{!}}<!--
-->13{{=}}$13{{!}}14{{=}}$14{{!}} 15{{=}}$15{{!}}16{{=}}P991{{!}}17{{=}}$0 {{!}}<!--
-->18{{=}}{{{item_round2|}}} {{!}} 19{{=}}{{{item_round2_prev|}}}{{!}}<!--
-->type_election{{=}}limited-aggregate {{!}}type_election1{{=}}limited-aggregate {{!}}<!--
-->item={{{item|}}}{{!}}coa{{=}}$16{{!}}<!--
-->P210txt{{=}}$18 {{!}} P460equivalent{{=}}$19 {{!}}<!--
-->moment{{=}}{{{moment|}}} {{!}} threshold_list{{=}}{{{threshold_list|}}}{{!}}<!--
--> debug {{=}} {{{debug|}}} {{!}} case{{=}} candidate {{!}} lang{{=}}{{{lang|}}} {{))}} }}
</table>
|<!-- if no seats, assume that is detailed level with elected & #vots
--><table>{{#invoke:Wikidades | claim| formatting = table |separator=LF| list = bestrank
| property= P991 |colformat0=raw |editicon=no
|qualifier =/P541 |colformat1=raw |rowsubformat1=$1
|qualifier2=/P1697 or /P1868 |rowsubformat2=$2 |colformat2=raw
|qualifier3=/P155 |colformat3=raw |rowsubformat3=$3<!-- void. replaced by {{{item_prev|}}} -->
|qualifier4=P991 |colformat4=raw |rowsubformat4=$4
|qualifier5=P991/P31 |colformat5=raw |rowsubformat5=$5
|qualifier6=P18 or P991/P18 |rowsubformat6=$6
|qualifier7=P102 or P1268 |colformat7=raw |rowsubformat7=$7
|qualifier8=P1813 or P991/P1813 |rowsubformat8=$8
|qualifier9=P8972 or P154 or P991/P8972 or P991/P154 |rowsubformat9=$9
|qualifier10=P210 |colformat10=raw|rowsubformat10=$10
|qualifier11=P465 or P991/P465 |rowsubformat11=$11
|qualifier12=P1111 |rowsubformat12=$12 |colformat12=raw
|qualifier13=P1114 |rowsubformat13=$13 |colformat13=raw
|qualifier14=P1410 |rowsubformat14=$14 |colformat14=raw
|qualifier15=P6149 |rowsubformat15=$14 |colformat15=raw
|qualifier16=P5832 |colformat16=raw
|qualifier17=P1545<!-- to order when no result information yet -->
|qualifier18=P210 |rowsubformat18=$18<!-- P210 in text -->
|qualifier19=P460 |rowsubformat19=$19 |colformat19=raw
| tablesort=14/12/13 |sorting=-1
| rowformat= {{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}4{{=}}$0{{!}}<!--
-->2{{=}} $2 {{!}}<!--
-->3{{=}}{{{item_prev|}}}{{!}} 4{{=}}$4{{!}}5{{=}}$5{{!}}6{{=}}$6{{!}} 7{{=}}$7{{!}}<!--
-->8{{=}}$8{{!}}9{{=}}$9{{!}}10{{=}}$10{{!}}11{{=}}$11{{!}}12{{=}}$12{{!}}<!--
-->13{{=}}$13{{!}}14{{=}}$14{{!}} 15{{=}}$15{{!}}16{{=}}P991{{!}}17{{=}}$0 {{!}}<!--
-->18{{=}}{{{item_round2|}}} {{!}} 19{{=}}{{{item_round2_prev|}}}{{!}}<!--
-->type_election{{=}}limited-detail {{!}}type_election1{{=}}limited-detail {{!}} <!--
-->item={{{item|}}}{{!}}coa{{=}}$16{{!}}<!--
-->P210txt{{=}}$18 {{!}} P460equivalent{{=}}$19 {{!}}<!--
-->moment{{=}}{{{moment|}}} {{!}} threshold_list{{=}}{{{threshold_list|}}} {{!}}<!--
--> debug {{=}} {{{debug|}}} {{!}} case{{=}} candidate {{!}} lang{{=}}{{{lang|}}} {{))}} }}
</table>
}}
}}
<!-- ____________Two rounds elections.
___________________ CANDIDATE Results block _______________________ -->
| data85 = {{#ifeq:{{{type_election|}}}|two_rounds
|{{Infobox election/prepare_multi |lang={{{lang|}}}
|case=candidate
|type_election=two_rounds
|item={{{item_elec1|}}}
|round_text=
|moment={{{moment|}}}
|threshold_list={{{threshold_list|}}}
|tablestyle=
|id_position1={{{id_position1|}}}
|id_position2={{{id_position2|}}}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|item_prev={{{item_elec1_prev|}}}
|item_round2={{{item_elec2|}}}
|item_round2_prev={{{item_elec2_prev|}}}
|valid_votes_round2={{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2|}}} }}
|valid_votes_round2_prev={{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2_prev|}}} }}
|debug = {{{debug|}}}
}}
}}
| data86 = {{#ifeq:{{{type_election|}}}|double
|{{Infobox election/prepare_multi |lang={{{lang|}}}
|case=candidate
|type_election=double
|type_election1={{Infobox election/type election|item={{{item_elec1|}}}}}
|type_election2={{#ifeq:{{Infobox election/type election|item={{{item_elec2|}}}}}|limited
|{{#if:{{#invoke:Wikidades|claim |list=bestrank |item={{{item_elec2|}}}
|property= P991 |qualifier =P1410 |editicon=no}}
|limited-aggregate | limited-detail}}
|{{Infobox election/type election|item={{{item_elec2|}}}}}
}}
|item={{{item_elec1|}}}
|round_text=
|moment={{{moment|}}}
|threshold_list={{{threshold_list|}}}
|tablestyle=
|id_position1={{{id_position1|}}}
|id_position2={{{id_position2|}}}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|item_prev={{{item_elec1_prev|}}}
|item_round2={{{item_elec2|}}}
|item_round2_prev={{{item_elec2_prev|}}}
|valid_votes_round2=
{{#ifeq:{{Infobox election/type election|item={{{item_elec2|}}}}}|limited
|{{#if:{{#invoke:Wikidades|claim |list=bestrank |item={{{item_elec2|}}}
|property= P991 |qualifier =P1410 |editicon=no}}
|{{#expr:0+0{{#invoke:Wikidades |claim |list=bestrank |property=P991
|item={{{item_elec2|}}}|qualifier=P1410 |separator=+ |editicon=no|formatting=raw}} }}
|{{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2|}}} }}
}}
|{{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2|}}} }}
}}
|valid_votes_round2_prev={{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2_prev|}}} }}
|parties_round1={{#invoke:Wikidades |claim |property =P726 |formatting=raw
|editicon=no |separator=/ |list=bestrank}}
|debug = {{{debug|}}}
}}
}}
| data90 = <div class="center"><!-- On march'2026, the property P14226-apportionment diagram was create to hold the "diagram of results"
Until this moment was in P1846 (+ qualif.P180=Q19571328).
The new P14226 has alreay the values from P1846 uploaded.
In order to avoid non representative diagrams, we may use the manual parameter "blacklist_diagram" with the P180 qualifier value.
-->{{if then show|{{#invoke:Wikidades | claim| formatting = table
|list = bestrank |separator=LF
|property =P14226
|colformat0=[[file:$1|250px|lang={{#invoke:Wikidades|lang|{{{lang|}}}}}]]
|qualifier=P2096 |rowsubformat1=<br/>$1
|qualifier2= P180 |blacklist2={{{blacklist_diagram|}}}
|rowformat=$0$1 }}
||<hr>}}</div>
<!-- Build header and block for investiture/appointment information -->
| header94 = {{if then show|{{#invoke:Wikidades |claim| formatting = table |list = bestrank
|property =P1536 |whitelist0= {{MyValue|IBelection|is_investit_appointm}}
|qualifier =P3831 |whitelist1= {{MyValue|IBelection|is_investit_appointm}}
|qualifier2=P1536/P31 |whitelist2= {{MyValue|IBelection|is_investit_appointm}}
|qualifier3=P642 |rowsubformat3= $3
|rowformat =$0$3 |colformat0=ucfirst}}
}}
| data95 = {{#invoke:Wikidades |claim| formatting = table |separator=<br>| list = bestrank
|property =P1536 |whitelist0= {{MyValue|IBelection|is_investit_appointm}}
|qualifier =P3831 |whitelist1= {{MyValue|IBelection|is_investit_appointm}}
|qualifier2=P1536/P31 |whitelist2= {{MyValue|IBelection|is_investit_appointm}}
|qualifier3=P642 |rowsubformat3= $3
|qualifier4=P991 or P1536/P991 or /P991 |rowsubformat4=<tr><td style= width:20%;text-align:left;><!--
-->{{GetLabelFix|P1365|lang={{{lang|}}}}}:</td><!--
--><td style=width:20%;text-align:right;font-weight:bold;><!--
-->{{GetLabelFix|Q16060143|lang={{{lang|}}}}}:</td></tr><!--
--><tr><td style= width:40%;text-align: left;>$5</td><!--
--><td style= width:40%;text-align:right;font-weight:bold;>$4</td></tr>
|qualifier5=P1365 or P1536/P1365 |rowsubformat5= $5
|qualifier6=P541 or P1536/P541 or /P541 |colformat6= ucfirst
|rowsubformat6=<div class="center">'''$6'''</div>
|rowformat=$6$4 }}
<!-- Build header and block for some other effects information, beside investiture/appointment -->
| header97 = {{#if:{{#invoke:Wikidades |claim| formatting = table |separator=LF| list = bestrank
|property =P1536 |blacklist0= {{MyValue|IBelection|is_investit_appointm}}
|qualifier =P3831 |blacklist1= {{MyValue|IBelection|is_investit_appointm}}
|qualifier2=P1536/P31 |blacklist2= {{MyValue|IBelection|is_investit_appointm}}
|rowformat=$0 }}
|{{GetLabelFix|P1536|lang={{{lang|}}}}}}}
| data100 = {{#invoke:Wikidades |claim| formatting = table |separator=<br>| list = bestrank
|property =P1536 |blacklist0= {{MyValue|IBelection|is_investit_appointm}}
|qualifier =P3831 |blacklist1= {{MyValue|IBelection|is_investit_appointm}}
|qualifier2=P1536/P31 |blacklist2= {{MyValue|IBelection|is_investit_appointm}}
|qualifier3=P585 or P1536/P585 |rowsubformat3=$3:
|rowformat=$3$0 }}
<!-- **************************************************************************
* Beginning of "VARIABLE LOCATION" code
************************************************************************** -->
<!-- SUCCESSION LINE
Succession line with the previous/next election may be allocated on "top" under title, or at "end" of the infobox
The following code determine infobox line number in function of customized value in "IBelection|top_end" of Module:Itemgreoup/list
top = subheader2 or end = header110
WARNING: these values must be adjusted when infobox line numbering changes.
-->
| {{#ifeq:{{MyValue|IBelection|top_end}}|top|<!-- Apply class from templatestyles
-->subheaderrowclass2|class110}} = infobox_successionheader
| {{#ifeq:{{MyValue|IBelection|top_end}}|top|<!-- Allocate in top, or else at bottom (header110) !!
-->subheader2|header110}} = {{#if:{{#statements:P155|from={{{item|}}}}}
|<span style="float:left; margin-left: 3px; "><!--
--> ← {{#if:{{#invoke:string|match
|{{#invoke:Wikidades| claim| property=P155| formatting= label|editicon=no}}
|%d%d%d%d|nomatch=}}
|{{#invoke:Wikidades | claim | property= P155 |list=false
|formatting= [[$1|{{((}}#invoke:string{{!}}match{{!}}$1{{!}}%d%d%d%d{{))}}]]}}
|{{#invoke:Wikidades | claim | property= P155 |list=false}}
}}<!--
--></span><!--
-->}}<!--
--><span style="float:center; ">{{#invoke:Wikidades | claim | property=P1001 or P17
|qualifier=P41 or P1001/P41 or P17/P41 |qualifier2=/P1001 or /P17
|formatting=table |list=false |rowformat=$1
|rowsubformat1=[[file:$1|x11px|link=|$2]]}}<!--
--></span><!--
-->{{#if:{{#statements:P156|from={{{item|}}}}}
|<span style="float:right; margin-right: 3px;"><!--
--> {{#if:{{#invoke:string|match
|{{#invoke:Wikidades| claim| property=P156| formatting= label|editicon=no}}
|%d%d%d%d|nomatch=}}
|{{#invoke:Wikidades | claim | property= P156 |list=firstrank|separator=<br>
|formatting= [[$1|{{((}}#invoke:string{{!}}match{{!}}$1{{!}}%d%d%d%d{{))}}]]}}
|{{#invoke:Wikidades | claim | property= P156 |list=firstrank|separator=<br>}}
}}
→ </span>
}}
<!-- End of SUCCESSION LINE code -->
<!-- **************************************************************************
* End of "VARIABLE LOCATION" code
************************************************************************** -->
}}<!-- end infobox --></includeonly>
8v1c2qo7eg16wdktiohz3nnt4qoikso
142948
142941
2026-06-26T11:57:42Z
آیات محراج
11062
/* */
142948
wikitext
text/x-wiki
<!-- Version cawiki- 2026.04.02
--><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly>{{#if:{{#invoke:string1|match|s={{{debug|}}}|core|ignore_errors=true}} |
* '''INPUT TO core'''
*item = {{{item|}}}
*item_elec1 = {{{item_elec1|}}}
*item_elec2 = {{{item_elec2|}}}
*item_prev = {{{item_prev|}}}
*item_elec1_prev = {{{item_elec1_prev|}}}
*item_elec2_prev = {{{item_elec2_prev|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
*yes_color={{{yes_color|}}}
*not_color={{{not_color|}}}
}}<!-- end if debug-->
<!-- Templatestyles with default colors and format style for whole infobox_election templates
--><templatestyles src="Infobox election/styles.css" /><!--
_______________________________________________________
-->{{infoboxFrame
<!-- Colours, icon and sizes defined as a classes in templatestyles -->
|titleclass = infobox_titlestyle
|aboveclass = infobox_abovestyle
|headerclass = infobox_headerstyle
|labelclass = infobox-label
|datastyle = text-align:start
|captionstyle = font-size:90%;
|bodystyle = font-size: 85%; text-align: left;width:24em;
<!-- title or above (depending on {{MyValue|IBelection|title_above}} )
This line shows on the left:
* the election logo (P154) (if {{MyValue|IBelection|logo_election}}=yes)
* one icon as a background image defined in {{MyValue|IBelection|img_election}}.
* none, else
-->
| {{#ifeq:{{MyValue|IBelection|title_above}}|above|above|title}} = <!-- "title" or "above" selected as a "top line for article name"-->
<!-- icon on top line, when exists
-->{{#if:{{MyValue|IBelection|logo_election}}|<div style="float:left; margin-left: 1px;<!--
--> line-height:{{str len|{{if empty|{{{election_name|}}}| {{Title without disambig}}}} }}px;"><!--
-->{{#invoke:Wikidades |claim |list=false |property=P154
|formatting=[[File:$1|80x40px|{{ROOTPAGENAME}}|link=]]}}</div>
|{{#if:{{MyValue|IBelection|img_election}}|<span style="float:left; margin-left: 3px;"><!--
-->[[File:{{MyValue|IBelection|img_election}}|25px|{{#invoke:Wikidades|getSiteLink|Q5855584}}|class=skin-invert]]</span>}}<!--
-->}}{{if empty|{{{election_name|}}}| {{Title without disambig}}}}
| image = {{{logo|}}}
| image2 = {{{image|{{#invoke:Wikidades |claim |formatting=table |list=false
|property= P18 |qualifier=P2096
|qualifier2=P180|whitelist2={{MyValue|IBelection|is_ballot}}
|rowformat=[[File:$0|300x300px]]$1 |rowsubformat1=</br>$1 }} }}}
<!-- Block general election data: demography and overall resultats -->
| label7 = {{GetLabelFix|P585|lang={{{lang|}}}}}<!-- electoral day -->
| data7 = {{#invoke:Wikidades |claim |formatting=table |tablesort=0
|property= P585 |qualifier=P518
|rowformat=$0$1 |rowsubformat1=, $1
|value={{{election_date|{{{data_eleccio|}}}}}} }}
{{#switch:{{{moment|}}}
|1=<span style="float:right; margin-right: 3px;">[[File:Android Emoji 23f3.svg|18px|class=skin-invert|{{GetLabelFix|Q529711|lang={{{lang|}}}}}]]</span>
|2=<span style="float:right; margin-right: 3px;">[[File:Android Emoji 231b.svg|18px|class=skin-invert|{{GetLabelFix|Q11642595|lang={{{lang|}}}}}]]</span>
|3=<span style="float:right; margin-right: 3px;">[[File:Ballot box current.svg|20px|class=skin-invert|{{GetLabelFix|Q476204|lang={{{lang|}}}}}]]</span>
|}}
| label9 = {{GetLabelFix|Q21146257|lang={{{lang|}}}}}<!-- Tipus -->
| data9 = {{#invoke:Wikidades | claim | property= P31 |list=bestrank |separator=
|value={{{type|}}} }}
| label11 = {{GetLabelFix|P361|lang={{{lang|}}}}}<!-- Part of -->
| data11 = {{#invoke:Wikidades | claim | property= P361 |list=bestrank }}
| data12 = {{#if:{{#ifeq:{{{type_election|}}}|referendum|1}}
{{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}|formatting=table
|whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|<span class=txtquestion<!-- style="font-size:110%; font-style:italic; color:#008000" -->><!--
-->{{if then show|{{#invoke:Wikidades | claim | property= P1476
|list=lang |formatting=table
|rowformat=«$0»}}||<hr>}}</span>
}}
| label15 = {{GetLabelFix|P541|lang={{{lang|}}}}}<!-- office contested -->
| data15 = {{#ifeq:{{{type_election|}}}|double
|{{#invoke:Wikidades | claim | property= P541 |list=bestrank |separator=<br>
|formatting=table |item={{{item_elec1|}}}
|qualifier =P768 |rowsubformat1= — $1<!-- constituency -->
|qualifier2=P1114 or P1342 or P768/P1342<!-- # seats -->
|qualifier3=P2937 |rowsubformat3= ≈ $3<!-- parliamentary term -->
|qualifier4=P642 |rowsubformat4= $4<!-- of ... -->
|qualifier5=P1083 <!-- total seats -->
|rowsubformat5= ({{label|P642|lang={{{lang|}}}}} $5)
|qualifier6=P541/P2097 |colformat6=unit<!-- term of office -->
|rowsubformat6=. {{GetLabelFix|P2097|lang={{{lang|}}}}}: $6
|qualifier7=P4253 or /P4253<!-- # constituencies -->
|rowsubformat7= ({{label|P4253|lang={{{lang|}}}}}:$7)
|rowformat = $2 $5$0$4$7$1$3$6 }}
<hr>
{{#invoke:Wikidades | claim | property= P541 |list=bestrank |separator=<br>
|formatting=table |item={{{item_elec2|}}}
|qualifier =P768 |rowsubformat1= — $1<!-- constituency -->
|qualifier2=P1114 or P1342 or P768/P1342<!-- # seats -->
|qualifier3=P2937 |rowsubformat3= ≈ $3<!-- parliamentary term -->
|qualifier4=P642 |rowsubformat4= $4<!-- of ... -->
|qualifier5=P1083 <!-- total seats -->
|rowsubformat5= ({{label|P642|lang={{{lang|}}}}} $5)
|qualifier6=P541/P2097 |colformat6=unit<!-- term of office -->
|rowsubformat6=. {{GetLabelFix|P2097|lang={{{lang|}}}}}: $6
|qualifier7=P4253 or /P4253<!-- # constituencies -->
|rowsubformat7= ({{label|P4253|lang={{{lang|}}}}}:$7)
|rowformat = $2 $5$0$4$7$1$3$6 }}
|{{#ifeq:{{{type_election|}}}|referendum|<!-- skip when referendum -->
|{{#invoke:Wikidades | claim | property= P541 |list=bestrank |separator=<hr>
|formatting=table
|qualifier =P768 |rowsubformat1= — $1<!-- constituency -->
|qualifier2=P1114 or P1342 or P768/P1342<!-- # seats -->
|qualifier3=P2937 |rowsubformat3= ≈ $3<!-- parliamentary term -->
|qualifier4=P642 |rowsubformat4= $4<!-- of ... -->
|qualifier5=P1083 <!-- total seats -->
|rowsubformat5= ({{label|P642|lang={{{lang|}}}}} $5)
|qualifier6=P541/P2097 |colformat6=unit<!-- term of office -->
|rowsubformat6=. {{GetLabelFix|P2097|lang={{{lang|}}}}}: $6
|qualifier7=P4253 or /P4253<!-- # constituencies -->
|rowsubformat7= ({{label|P4253|lang={{{lang|}}}}}:$7)
|rowformat = $2 $5$0$4$7$1$3$6 }}
}} }}
| label23 = {{GetLabelFix|Q11642595|lang={{{lang|}}}}}<!-- campaign days -->
| data23 = {{#invoke:Wikidades | claim | property= P2047 |formatting=table
|qualifier =P518 |whitelist1={{MyValue|IBelection|is_election_campaign}}
|rowformat = $0|colformat0=unit
|value={{{campaign|}}} }}
| label27 = {{GetLabelFix|P856|lang={{{lang|}}}}}<!-- official web -->
| data27 = {{#if:{{#invoke:Wikidades|validProperty|P856|item={{{item|}}} }}
|{{#ifeq:{{#invoke:Wikidades |claim |property=P856 |list=false |formatting=table
|qualifier=P582 |rowformat=$1 |editicon=no}} | {{somevalue|lang={{{lang|}}}}}<!--
-->|{{#invoke:Wikidades |claim |property=P856 |list=false |formatting=weblink }}<!--
-->|{{#invoke:Wikidades |claim |property=P856 |list=false |formatting=table |colformat0=weblink
|qualifier =P582 |rowsubformat1= → $2$3
|qualifier2=P1065 |rowsubformat2=[[File:Cloud download font awesome.svg|15px|link=$2]]
|qualifier3=P2960 |colformat3=Y |rowsubformat3= <small>($3)</small>
|rowformat=$0$1 }}
}}
}}
| label28 = {{GetLabelFix|P2572|lang={{{lang|}}}}}<!-- Hastag -->
| data28 = {{#invoke:Wikidades | claim | property= P2572 |formatting=[https://hashtags-hub.toolforge.org/$1 #$1]}}
|header30 = {{#if:{{{registrats|}}} {{{votants|}}} {{{cens|}}}{{{valids|}}} {{{nuls|}}} {{{blancs|}}}
{{#invoke:Wikidades |claim | property= P1868 or P1867 or P1831 or P1697 or P5044 or P5045}}
|{{GetLabelFix|Q1339847|lang={{{lang|}}}}} }}<!-- participation -->
| label35 = {{GetLabelFix|P1082|lang={{{lang|}}}}}<!-- population -->
| data35 = {{#invoke:Wikidades | claim | property= P1082 |list=false
|value={{{poblacio|}}} }}
| data40 =
<!--
___________________ Election DEMOGRAPHY block _______________________
-->
<!-- ____________Two rounds election & double position election_______________________________
It is a set of 3 items: one for the election with basic data, winner
and P527 pointing to other two items -one by each round or each position, in case of double-
with candidates and results -->
| data41 ={{#ifeq:{{{type_election|}}}|double
|{{Infobox election/prepare |lang={{{lang|}}}
|case=election
|type_election={{{type_election|}}}
|item={{{item_elec1|}}}
|round_text=<span id="id_position1" style="background:{{{roundcolor_1|}}};color:#ffffff;<!--
-->padding:3.5px 3.5px 3.5px 3.5px;margin:0px 0px 0px 0px;border-radius:100px;text-align:center;<!--
-->font-size:0.8em;">{{{id_position1|}}}</span> <!--
-->''{{#invoke:Wikidades |claim |list=false |editicon=no|property=P541 |formatting=ucfirst
|item={{{item_elec1|}}} }}''<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec1|}}} |property=P1868 |editicon=right}}<!--position-1 -->
|moment={{{moment|}}}
|today={{{today|}}}
|tablestyle="border:2px solid {{{roundcolor_1|}}};"
|barcolor={{{roundcolor_1|}}}
|item_prev={{{item_elec1_prev|}}}
|debug = {{{debug|}}}
}}<!--
-->{{Infobox election/prepare |lang={{{lang|}}}
|case=election
|type_election={{{type_election|}}}
|item={{{item_elec2|}}}
|round_text=<span id="id_position2" style="background:{{{roundcolor_2|}}};color:#ffffff;<!--
-->padding:3.5px 3.5px 3.5px 3.5px;margin:0px 0px 0px 0px;border-radius:100px;text-align:center;<!--
-->font-size:0.8em;">{{{id_position2|}}}</span> <!--
-->''{{#invoke:Wikidades |claim |list=false |editicon=no|property=P541 |formatting=ucfirst
|item={{{item_elec2|}}}}}''<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec2|}}} |property=P1868 |editicon=right}}<!-- position-2 -->
|moment={{{moment|}}}
|tablestyle="border:2px solid {{{roundcolor_2|}}};"
|barcolor={{{roundcolor_2|}}}
|item_prev={{{item_elec2_prev|}}}
|debug = {{{debug|}}}
}} }}
| data43 = {{#ifeq:{{{type_election|}}}|two_rounds
|{{Infobox election/prepare |lang={{{lang|}}}
|case=election
|type_election=two_rounds
|item={{{item_elec1|}}}
|round_text={{GetLabelFix|Q62789940|lang={{{lang|}}}}}<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec1|}}} |property=P1868 |editicon=right}}<!-- round 1 -->
|moment={{{moment|}}}
|tablestyle="border:2px solid {{{roundcolor_1|}}};"
|barcolor={{{roundcolor_1|}}}
|item_prev={{{item_elec1_prev|}}}
|debug = {{{debug|}}}
}}<!--
-->{{#if:{{{item_elec2|}}}<!-- no item_elec2 = only one round -->
|{{Infobox election/prepare |lang={{{lang|}}}
|case=election
|type_election=two_rounds
|item={{{item_elec2|}}}
|round_text={{GetLabelFix|Q62790009|lang={{{lang|}}}}}<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec2|}}} |property=P1868 |editicon=right}}<!-- round 2 -->
|moment={{{moment|}}}
|tablestyle="border:2px solid {{{roundcolor_2|}}};"
|barcolor={{{roundcolor_2|}}}
|item_prev={{{item_elec2_prev|}}}
|debug = {{{debug|}}}
}}
}} }}
| data45 = {{#switch:{{{type_election|}}}|direct|limited|proportional|referendum
={{Infobox election/prepare |lang={{{lang|}}}<!-- direct, proportional and referendum single election -->
|case=election
|type_election=direct
|item={{{item|}}}
|round_text=
|moment={{{moment|}}}
|tablestyle=
|barcolor={{{roundcolor_1|}}}
|item_prev={{{item_prev|}}}
|debug = {{{debug|}}}
}} }}
<!--
___________________ Individual results fom CANDIDATES block _______________________
-->
| header75 = {{#ifexpr:{{{moment|0}}} > 3
<!-- if results are empty, skip to candidates. THIS CONTROL HAS BEEN DEPRECATED (by now)___________
|{{#if:{{#invoke:Wikidades |claim| list=bestrank
| property= P991 |qualifier=P1114 |qualifier2=/P1868
| rowformat=$1$2 |editicon=no}}|1}} -->
|{{GetLabelFix|Q51591359|lang={{{lang|}}} }}<!-- Voting results -->
{{#switch:{{{type_election|}}}|two_rounds|double=
{{#invoke:Wikidades|editAtWikidata|item={{{item_elec1|}}} |property=P726 |editicon=right}}<!--
-->{{#invoke:Wikidades|editAtWikidata|item={{{item_elec2|}}} |property=P726 |editicon=right}}
|{{#invoke:Wikidades|editAtWikidata|item={{{item|}}} |property=P726 |editicon=right}} }}
|{{GetLabelFix|P726|lang={{{lang|}}} }} }}<!-- Candidatures -->
| data78 = <!-- Results for basic (yes / no) REFERENDUMS _____________
____________________________________________________________________________________________
-->{{#ifeq:{{{type_election|}}}|referendum
|{{if both|{{#property:P8682|from={{{item|}}}}}|{{#property:P8683|from={{{item|}}}}}
|<table>{{#invoke:Wikidades |claim |formatting=table |property=P8683 |colformat0=raw
|qualifier =P642 |colformat1= raw<!-- not used -->
|qualifier2=P642 |colformat2=label<!-- not used -->
|qualifier3=P465 |rowsubformat3= #$3
|qualifier4=/P1697 or /P1868 |colformat4=raw
|qualifier5=/P1346|colformat5= raw
|qualifier6=/P8682|colformat6= raw
|editicon=no
|rowformat={{((}}Infobox election/prepare{{!}}<!--
-->1{{=}}Q41216873{{!}}2{{=}}$2{{!}}3{{=}}$0{{!}}<!--
-->4{{=}}$3{{!}}5{{=}}$4{{!}}6{{=}}$5{{!}}7{{=}}$6{{!}}item={{{item|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}moment{{=}}{{{moment|}}} {{!}}<!--
-->threshold_list{{=}}{{{threshold_list|}}} {{!}} case{{=}} referendum {{!}}<!--
-->yes_color{{=}}{{{yes_color|}}} {{!}} not_color{{=}}{{{not_color|}}} {{!}}<!--
-->debug_referendum{{=}} {{{debug|}}} {{!}} lang{{=}}{{{lang|}}} {{))}} }}
{{#invoke:Wikidades |claim |formatting=table |property=P8682 |colformat0=raw
|qualifier =P642 |colformat1= raw
|qualifier2=P642 |colformat2=label
|qualifier3=P465 |rowsubformat3= #$3
|qualifier4=/P1697 or /P1868 |colformat4=raw
|qualifier5=/P1346|colformat5= raw
|qualifier6=/P8683|colformat6= raw
|editicon=no
|rowformat={{((}}Infobox election/prepare{{!}}<!--
-->1{{=}}Q41216897{{!}}2{{=}}$2{{!}}3{{=}}$0{{!}} <!--
-->4{{=}}$3{{!}}5{{=}}$4{{!}}6{{=}}$5{{!}}7{{=}}$6{{!}}item={{{item|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}moment{{=}}{{{moment|}}} {{!}}<!--
-->threshold_list{{=}}{{{threshold_list|}}} {{!}} case{{=}} referendum {{!}}<!--
-->yes_color{{=}}{{{yes_color|}}} {{!}} not_color{{=}}{{{not_color|}}} {{!}}<!--
-->debug_referendum{{=}} {{{debug|}}} {{!}} lang{{=}}{{{lang|}}} {{))}} }}</table>
<!-- 1): detect format P1111 + P642=yes/no. Then, call /prepare with 1=P642raw, 2=P642lab, 3=P1111-vots, 4=P465-color(opt) -->
|{{#ifeq:{{#invoke:Wikidades |claim |formatting=table |property=P1111
|qualifier =P642 |rowsubformat1=1
|selectvalue1= {{MyValue|IBelection|yes_in_referendum}}
|qualifier2=P642 |rowsubformat2=2
|selectvalue2= {{MyValue|IBelection|no_in_referendum}}
|separator=,|rowformat=$1$2
|editicon=no }}|1,2<!-- when votes for yes and no, means a binary referendum
-->|<table>{{#invoke:Wikidades |claim |formatting=table |property=P1111 |colformat0=raw
|qualifier =P642 |colformat1= raw
|whitelist1= {{MyValue|IBelection|yes_in_referendum}}, {{MyValue|IBelection|no_in_referendum}}
|qualifier2=P642 |colformat2=label
|qualifier3=P465 |rowsubformat3= #$3
|qualifier4=/P1697 or /P1868 |colformat4=raw
|qualifier5=/P1346|colformat5= raw
|editicon=no
|rowformat={{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}2{{=}}$2{{!}}<!--
-->3{{=}}$0{{!}}4{{=}}$3{{!}}5{{=}}$4{{!}}6{{=}}$5{{!}}item={{{item|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}moment{{=}}{{{moment|}}} {{!}}<!--
-->threshold_list{{=}}{{{threshold_list|}}} {{!}} case{{=}} referendum {{!}}<!--
-->yes_color{{=}}{{{yes_color|}}} {{!}} not_color{{=}}{{{not_color|}}} {{!}}<!--
-->debug_referendum{{=}} {{{debug|}}} {{!}} lang{{=}}{{{lang|}}} {{))}} }}</table>
<!-- 2):detect format P726=option +P1111 qualif. Then, call /prepare with 1=P726raw,2=P726lab,3=P1111-vots,4=P465-color(opt) -->
|<table>{{#invoke:Wikidades |claim |formatting=table |property=P726
|colformat0=raw |separator=LF
|qualifier =P726 |colformat1=label
|qualifier2=P1111 |colformat2=raw
|qualifier3=P465 |rowsubformat3=#$3
|qualifier4=/P1697 or /P1868 |colformat4=raw
|qualifier5=/P1346|colformat5= raw
|qualifier6=P1545
|tablesort=6
|editicon=no
|rowformat={{((}}Infobox election/prepare{{!}}1{{=}}$0{{!}}2{{=}}$1{{!}}<!--
-->3{{=}}$2{{!}}4{{=}}$3{{!}}5{{=}}$4{{!}}6{{=}}$5{{!}}item={{{item|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}moment{{=}}{{{moment|}}} {{!}}<!--
-->threshold_list{{=}}{{{threshold_list|}}} {{!}} case{{=}} referendum {{!}}<!--
-->yes_color{{=}}{{{yes_color|}}} {{!}} not_color{{=}}{{{not_color|}}} {{!}}<!--
-->debug_referendum{{=}} {{{debug|}}} {{!}} lang{{=}}{{{lang|}}} {{))}} }}</table>
}}
}} }}
| data80 = <!-- List of candidate and results for direct and proportional election _____________
____________________________________________________________________________________________
-->{{#switch:{{{type_election|}}}|direct|proportional=
{{#if:{{#property:P726|from={{{item|}}}}}<!-- When info is uploaded after elections, may be enter in P991 directly, without P726 -->
|<table>{{#invoke:Wikidades | claim| formatting = table |separator=LF| list = bestrank
| property= P726 |colformat0=label|editicon=no
|qualifier =/P541 |colformat1=raw |rowsubformat1=$1
|qualifier2=/P1697 or /P1868 |rowsubformat2=$2 |colformat2=raw
|qualifier3=/P155 |colformat3=raw |rowsubformat3=$3<!-- void. replaced by {{{item_prev|}}} -->
|qualifier4=P726 |colformat4=raw |rowsubformat4=$4
|qualifier5=P726/P31 |colformat5=raw |rowsubformat5=$5
|qualifier6=P18 or P726/P18 or P991/P18 |rowsubformat6=$6
|qualifier7=P102 or P1268 or P726/P102 |colformat7=raw |rowsubformat7=$7
|qualifier8=P1813 or P726/P1813 |rowsubformat8=$8
|qualifier9=P8972 or P154 or P726/P8972 or P726/P154 |rowsubformat9=$9
|qualifier10=P210 |colformat10=raw|rowsubformat10=$10
|qualifier11=P465 or P726/P465 or P102/P465 |rowsubformat11=$11
|qualifier12=P1111 |rowsubformat12=$12 |colformat12=raw
|qualifier13=P1114 |rowsubformat13=$13 |colformat13=raw
|qualifier14=P1410 |rowsubformat14=$14 |colformat14=raw
|qualifier15=P6149 |rowsubformat15=$15 |colformat15=raw
|qualifier16=P5832 |colformat16=raw
|qualifier17=P1545<!-- to order when no result information yet -->
|qualifier18=P210 |rowsubformat18=$18<!-- P210 in text -->
|qualifier19=P460 |rowsubformat19=$19 |colformat19=raw
| tablesort=14/12/13/17 |sorting={{#ifexpr:{{{moment|0}}} > 3|-1}}<!-- after election, descendent by seats/vots -->
| rowformat= {{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}2{{=}}$2{{!}}4{{=}}$0{{!}}<!--
-->3{{=}}{{{item_prev|}}}{{!}}4{{=}}$4{{!}}5{{=}}$5{{!}}6{{=}}$6{{!}} 7{{=}}$7{{!}}<!--
-->8{{=}}$8{{!}}9{{=}}$9{{!}}10{{=}}$10{{!}}11{{=}}$11{{!}}12{{=}}$12{{!}}<!--
-->13{{=}}$13{{!}}14{{=}}$14{{!}} 15{{=}}$15{{!}}16{{=}}P726{{!}}17{{=}}$0 {{!}}<!--
-->18{{=}}{{{item_round2|}}} {{!}} 19{{=}}{{{item_round2_prev|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}item={{{item|}}}{{!}}coa{{=}}$16{{!}}<!--
-->P210txt{{=}}$18 {{!}} P460equivalent{{=}}$19 {{!}} <!--
-->moment{{=}}{{{moment|}}} {{!}} threshold_list{{=}}{{{threshold_list|}}} {{!}}<!--
-->id_position1{{=}}{{{id_position1|}}} {{!}} id_position2{{=}}{{{id_position2|}}} {{!}}<!--
-->roundcolor_1{{=}}{{{roundcolor_1|}}} {{!}} roundcolor_2{{=}}{{{roundcolor_2|}}} {{!}}<!--
--> debug {{=}} {{{debug|}}} {{!}} case{{=}} candidate {{!}} lang{{=}}{{{lang|}}} {{))}} }}
</table>
|<table>{{#invoke:Wikidades | claim| formatting = table |separator=LF| list = bestrank
| property = P991 |colformat0=raw |editicon=no
|qualifier =/P541 |colformat1=raw |rowsubformat1=$1
|qualifier2=/P1697 or /P1868 |rowsubformat2=$2 |colformat2=raw
|qualifier3=/P155 |colformat3=raw |rowsubformat3=$3<!-- void. replaced by {{{item_prev|}}} -->
|qualifier4=P991 |colformat4=raw |rowsubformat4=$4
|qualifier5=P991/P31 |colformat5=raw |rowsubformat5=$5
|qualifier6=P18 or P991/P18 |rowsubformat6=$6
|qualifier7=P102 or P1268 |colformat7=raw |rowsubformat7=$7
|qualifier8=P1813 or P991/P1813 |rowsubformat8=$8
|qualifier9=P8972 or P154 or P991/P8972 or P991/P154 |rowsubformat9=$9
|qualifier10=P210 |colformat10=raw|rowsubformat10=$10
|qualifier11=P465 or P991/P465 |rowsubformat11=$11
|qualifier12=P1111 |rowsubformat12=$12 |colformat12=raw
|qualifier13=P1114 |rowsubformat13=$13 |colformat13=raw<!-- unused -->
|qualifier14=P1410 |rowsubformat14=$14 |colformat14=raw
|qualifier15=P6149 |rowsubformat15=$15 |colformat15=raw
|qualifier16=P5832 |colformat16=raw
|qualifier17=P1545<!-- to order when no result information yet -->
|qualifier18=P210 |rowsubformat18=$18<!-- P210 in text -->
|qualifier19=P460 |rowsubformat19=$19 |colformat19=raw
| tablesort=14/12/13/17 |sorting={{#ifexpr:{{{moment|0}}} > 3|-1}}<!-- after election, descendent by seats/vots -->
| rowformat= {{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}2{{=}}$2{{!}}4{{=}}$0{{!}}<!--
-->3{{=}}{{{item_prev|}}} {{!}}4{{=}}$4{{!}}5{{=}}$5{{!}}6{{=}}$6{{!}} 7{{=}}$7{{!}}<!--
-->8{{=}}$8{{!}}9{{=}}$9{{!}}10{{=}}$10{{!}}11{{=}}$11{{!}}12{{=}}$12{{!}}<!--
-->13{{=}}$13{{!}}14{{=}}$14{{!}} 15{{=}}$15{{!}}16{{=}}P991{{!}}17{{=}}$0 {{!}}<!--
-->18{{=}}{{{item_round2|}}} {{!}} 19{{=}}{{{item_round2_prev|}}}{{!}}<!--
-->type_election{{=}}{{{type_election|}}}{{!}}item={{{item|}}}{{!}}coa{{=}}$16{{!}}<!--
-->P210txt{{=}}$18 {{!}} P460equivalent{{=}}$19 {{!}}<!--
-->moment{{=}}{{{moment|}}} {{!}} threshold_list{{=}}{{{threshold_list|}}} {{!}}<!--
--> debug {{=}} {{{debug|}}} {{!}} case{{=}} candidate {{!}} lang{{=}}{{{lang|}}} {{))}} }}
</table>
}} }}
| data82 = <!-- ____________________________________________________________________________________
List of candidate and results for limited voting election _____________
____________________________________________________________________________________________
-->{{#ifeq:{{{type_election|}}}|limited<!--
-->|{{#if:{{#invoke:Wikidades | claim|| list = bestrank
|property= P991 |qualifier =P1410 |editicon=no}}<!-- if seats, aggregate level
-->|<table>{{#invoke:Wikidades | claim| formatting = table |separator=LF| list = bestrank
| property= P991 |colformat0=raw |editicon=no
|qualifier =/P541 |colformat1=raw |rowsubformat1=$1
|qualifier2=/P1697 or /P1868 |rowsubformat2=$2 |colformat2=raw
|qualifier3=/P155 |colformat3=raw |rowsubformat3=$3<!-- void. replaced by {{{item_prev|}}} -->
|qualifier4=P991 |colformat4=raw |rowsubformat4=$4
|qualifier5=P991/P31 |colformat5=raw |rowsubformat5=$5
|qualifier6=P18 or P991/P18 |rowsubformat6=$6
|qualifier7=P102 or P1268 |colformat7=raw |rowsubformat7=$7
|qualifier8=P1813 or P991/P1813 |rowsubformat8=$8
|qualifier9=P8972 or P154 or P991/P8972 or P991/P154 |rowsubformat9=$9
|qualifier10=P210 |colformat10=raw|rowsubformat10=$10
|qualifier11=P465 or P991/P465 |rowsubformat11=$11
|qualifier12=P1111 |rowsubformat12=$12 |colformat12=raw
|qualifier13=P1114 |rowsubformat13=$13 |colformat13=raw
|qualifier14=P1410 |rowsubformat14=$14 |colformat14=raw
|qualifier15=P6149 |rowsubformat15=$15 |colformat15=raw
|qualifier16=P5832 |colformat16=raw
|qualifier17=P1545<!-- to order when no result information yet -->
|qualifier18=P210 |rowsubformat18=$18<!-- P210 in text -->
|qualifier19=P460 |rowsubformat19=$19 |colformat19=raw
| tablesort=14/12/13 |sorting=-1
| rowformat= {{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}4{{=}}$0{{!}}<!--
-->2{{=}}{{#expr:0+0{{#invoke:Wikidades |claim |list=bestrank |property=P991
|qualifier=P1410 |separator=+ |editicon=no|formatting=raw}} }}{{!}}<!--
-->3{{=}}{{{item_prev|}}}{{!}} 4{{=}}$4{{!}}5{{=}}$5{{!}}6{{=}}$6{{!}} 7{{=}}$7{{!}}<!--
-->8{{=}}$8{{!}}9{{=}}$9{{!}}10{{=}}$10{{!}}11{{=}}$11{{!}}12{{=}}$12{{!}}<!--
-->13{{=}}$13{{!}}14{{=}}$14{{!}} 15{{=}}$15{{!}}16{{=}}P991{{!}}17{{=}}$0 {{!}}<!--
-->18{{=}}{{{item_round2|}}} {{!}} 19{{=}}{{{item_round2_prev|}}}{{!}}<!--
-->type_election{{=}}limited-aggregate {{!}}type_election1{{=}}limited-aggregate {{!}}<!--
-->item={{{item|}}}{{!}}coa{{=}}$16{{!}}<!--
-->P210txt{{=}}$18 {{!}} P460equivalent{{=}}$19 {{!}}<!--
-->moment{{=}}{{{moment|}}} {{!}} threshold_list{{=}}{{{threshold_list|}}}{{!}}<!--
--> debug {{=}} {{{debug|}}} {{!}} case{{=}} candidate {{!}} lang{{=}}{{{lang|}}} {{))}} }}
</table>
|<!-- if no seats, assume that is detailed level with elected & #vots
--><table>{{#invoke:Wikidades | claim| formatting = table |separator=LF| list = bestrank
| property= P991 |colformat0=raw |editicon=no
|qualifier =/P541 |colformat1=raw |rowsubformat1=$1
|qualifier2=/P1697 or /P1868 |rowsubformat2=$2 |colformat2=raw
|qualifier3=/P155 |colformat3=raw |rowsubformat3=$3<!-- void. replaced by {{{item_prev|}}} -->
|qualifier4=P991 |colformat4=raw |rowsubformat4=$4
|qualifier5=P991/P31 |colformat5=raw |rowsubformat5=$5
|qualifier6=P18 or P991/P18 |rowsubformat6=$6
|qualifier7=P102 or P1268 |colformat7=raw |rowsubformat7=$7
|qualifier8=P1813 or P991/P1813 |rowsubformat8=$8
|qualifier9=P8972 or P154 or P991/P8972 or P991/P154 |rowsubformat9=$9
|qualifier10=P210 |colformat10=raw|rowsubformat10=$10
|qualifier11=P465 or P991/P465 |rowsubformat11=$11
|qualifier12=P1111 |rowsubformat12=$12 |colformat12=raw
|qualifier13=P1114 |rowsubformat13=$13 |colformat13=raw
|qualifier14=P1410 |rowsubformat14=$14 |colformat14=raw
|qualifier15=P6149 |rowsubformat15=$14 |colformat15=raw
|qualifier16=P5832 |colformat16=raw
|qualifier17=P1545<!-- to order when no result information yet -->
|qualifier18=P210 |rowsubformat18=$18<!-- P210 in text -->
|qualifier19=P460 |rowsubformat19=$19 |colformat19=raw
| tablesort=14/12/13 |sorting=-1
| rowformat= {{((}}Infobox election/prepare{{!}}1{{=}}$1{{!}}4{{=}}$0{{!}}<!--
-->2{{=}} $2 {{!}}<!--
-->3{{=}}{{{item_prev|}}}{{!}} 4{{=}}$4{{!}}5{{=}}$5{{!}}6{{=}}$6{{!}} 7{{=}}$7{{!}}<!--
-->8{{=}}$8{{!}}9{{=}}$9{{!}}10{{=}}$10{{!}}11{{=}}$11{{!}}12{{=}}$12{{!}}<!--
-->13{{=}}$13{{!}}14{{=}}$14{{!}} 15{{=}}$15{{!}}16{{=}}P991{{!}}17{{=}}$0 {{!}}<!--
-->18{{=}}{{{item_round2|}}} {{!}} 19{{=}}{{{item_round2_prev|}}}{{!}}<!--
-->type_election{{=}}limited-detail {{!}}type_election1{{=}}limited-detail {{!}} <!--
-->item={{{item|}}}{{!}}coa{{=}}$16{{!}}<!--
-->P210txt{{=}}$18 {{!}} P460equivalent{{=}}$19 {{!}}<!--
-->moment{{=}}{{{moment|}}} {{!}} threshold_list{{=}}{{{threshold_list|}}} {{!}}<!--
--> debug {{=}} {{{debug|}}} {{!}} case{{=}} candidate {{!}} lang{{=}}{{{lang|}}} {{))}} }}
</table>
}}
}}
<!-- ____________Two rounds elections.
___________________ CANDIDATE Results block _______________________ -->
| data85 = {{#ifeq:{{{type_election|}}}|two_rounds
|{{Infobox election/prepare_multi |lang={{{lang|}}}
|case=candidate
|type_election=two_rounds
|item={{{item_elec1|}}}
|round_text=
|moment={{{moment|}}}
|threshold_list={{{threshold_list|}}}
|tablestyle=
|id_position1={{{id_position1|}}}
|id_position2={{{id_position2|}}}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|item_prev={{{item_elec1_prev|}}}
|item_round2={{{item_elec2|}}}
|item_round2_prev={{{item_elec2_prev|}}}
|valid_votes_round2={{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2|}}} }}
|valid_votes_round2_prev={{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2_prev|}}} }}
|debug = {{{debug|}}}
}}
}}
| data86 = {{#ifeq:{{{type_election|}}}|double
|{{Infobox election/prepare_multi |lang={{{lang|}}}
|case=candidate
|type_election=double
|type_election1={{Infobox election/type election|item={{{item_elec1|}}}}}
|type_election2={{#ifeq:{{Infobox election/type election|item={{{item_elec2|}}}}}|limited
|{{#if:{{#invoke:Wikidades|claim |list=bestrank |item={{{item_elec2|}}}
|property= P991 |qualifier =P1410 |editicon=no}}
|limited-aggregate | limited-detail}}
|{{Infobox election/type election|item={{{item_elec2|}}}}}
}}
|item={{{item_elec1|}}}
|round_text=
|moment={{{moment|}}}
|threshold_list={{{threshold_list|}}}
|tablestyle=
|id_position1={{{id_position1|}}}
|id_position2={{{id_position2|}}}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|item_prev={{{item_elec1_prev|}}}
|item_round2={{{item_elec2|}}}
|item_round2_prev={{{item_elec2_prev|}}}
|valid_votes_round2=
{{#ifeq:{{Infobox election/type election|item={{{item_elec2|}}}}}|limited
|{{#if:{{#invoke:Wikidades|claim |list=bestrank |item={{{item_elec2|}}}
|property= P991 |qualifier =P1410 |editicon=no}}
|{{#expr:0+0{{#invoke:Wikidades |claim |list=bestrank |property=P991
|item={{{item_elec2|}}}|qualifier=P1410 |separator=+ |editicon=no|formatting=raw}} }}
|{{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2|}}} }}
}}
|{{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2|}}} }}
}}
|valid_votes_round2_prev={{#invoke:Wikidades |claim| formatting=raw |list=false |editicon=no
|property=P1697|item={{{item_elec2_prev|}}} }}
|parties_round1={{#invoke:Wikidades |claim |property =P726 |formatting=raw
|editicon=no |separator=/ |list=bestrank}}
|debug = {{{debug|}}}
}}
}}
| data90 = <div class="center"><!-- On march'2026, the property P14226-apportionment diagram was create to hold the "diagram of results"
Until this moment was in P1846 (+ qualif.P180=Q19571328).
The new P14226 has alreay the values from P1846 uploaded.
In order to avoid non representative diagrams, we may use the manual parameter "blacklist_diagram" with the P180 qualifier value.
-->{{if then show|{{#invoke:Wikidades | claim| formatting = table
|list = bestrank |separator=LF
|property =P14226
|colformat0=[[file:$1|250px|lang={{#invoke:Wikidades|lang|{{{lang|}}}}}]]
|qualifier=P2096 |rowsubformat1=<br/>$1
|qualifier2= P180 |blacklist2={{{blacklist_diagram|}}}
|rowformat=$0$1 }}
||<hr>}}</div>
<!-- Build header and block for investiture/appointment information -->
| header94 = {{if then show|{{#invoke:Wikidades |claim| formatting = table |list = bestrank
|property =P1536 |whitelist0= {{MyValue|IBelection|is_investit_appointm}}
|qualifier =P3831 |whitelist1= {{MyValue|IBelection|is_investit_appointm}}
|qualifier2=P1536/P31 |whitelist2= {{MyValue|IBelection|is_investit_appointm}}
|qualifier3=P642 |rowsubformat3= $3
|rowformat =$0$3 |colformat0=ucfirst}}
}}
| data95 = {{#invoke:Wikidades |claim| formatting = table |separator=<br>| list = bestrank
|property =P1536 |whitelist0= {{MyValue|IBelection|is_investit_appointm}}
|qualifier =P3831 |whitelist1= {{MyValue|IBelection|is_investit_appointm}}
|qualifier2=P1536/P31 |whitelist2= {{MyValue|IBelection|is_investit_appointm}}
|qualifier3=P642 |rowsubformat3= $3
|qualifier4=P991 or P1536/P991 or /P991 |rowsubformat4=<tr><td style= width:20%;text-align:left;><!--
-->{{GetLabelFix|P1365|lang={{{lang|}}}}}:</td><!--
--><td style=width:20%;text-align:right;font-weight:bold;><!--
-->{{GetLabelFix|Q16060143|lang={{{lang|}}}}}:</td></tr><!--
--><tr><td style= width:40%;text-align: left;>$5</td><!--
--><td style= width:40%;text-align:right;font-weight:bold;>$4</td></tr>
|qualifier5=P1365 or P1536/P1365 |rowsubformat5= $5
|qualifier6=P541 or P1536/P541 or /P541 |colformat6= ucfirst
|rowsubformat6=<div class="center">'''$6'''</div>
|rowformat=$6$4 }}
<!-- Build header and block for some other effects information, beside investiture/appointment -->
| header97 = {{#if:{{#invoke:Wikidades |claim| formatting = table |separator=LF| list = bestrank
|property =P1536 |blacklist0= {{MyValue|IBelection|is_investit_appointm}}
|qualifier =P3831 |blacklist1= {{MyValue|IBelection|is_investit_appointm}}
|qualifier2=P1536/P31 |blacklist2= {{MyValue|IBelection|is_investit_appointm}}
|rowformat=$0 }}
|{{GetLabelFix|P1536|lang={{{lang|}}}}}}}
| data100 = {{#invoke:Wikidades |claim| formatting = table |separator=<br>| list = bestrank
|property =P1536 |blacklist0= {{MyValue|IBelection|is_investit_appointm}}
|qualifier =P3831 |blacklist1= {{MyValue|IBelection|is_investit_appointm}}
|qualifier2=P1536/P31 |blacklist2= {{MyValue|IBelection|is_investit_appointm}}
|qualifier3=P585 or P1536/P585 |rowsubformat3=$3:
|rowformat=$3$0 }}
<!-- **************************************************************************
* Beginning of "VARIABLE LOCATION" code
************************************************************************** -->
<!-- SUCCESSION LINE
Succession line with the previous/next election may be allocated on "top" under title, or at "end" of the infobox
The following code determine infobox line number in function of customized value in "IBelection|top_end" of Module:Itemgreoup/list
top = subheader2 or end = header110
WARNING: these values must be adjusted when infobox line numbering changes.
-->
| {{#ifeq:{{MyValue|IBelection|top_end}}|top|<!-- Apply class from templatestyles
-->subheaderrowclass2|class110}} = infobox_successionheader
| {{#ifeq:{{MyValue|IBelection|top_end}}|top|<!-- Allocate in top, or else at bottom (header110) !!
-->subheader2|header110}} = {{#if:{{#statements:P155|from={{{item|}}}}}
|<span style="float:left; margin-left: 3px; "><!--
--> ← {{#if:{{#invoke:string1|match
|{{#invoke:Wikidades| claim| property=P155| formatting= label|editicon=no}}
|%d%d%d%d|nomatch=}}
|{{#invoke:Wikidades | claim | property= P155 |list=false
|formatting= [[$1|{{((}}#invoke:string1{{!}}match{{!}}$1{{!}}%d%d%d%d{{))}}]]}}
|{{#invoke:Wikidades | claim | property= P155 |list=false}}
}}<!--
--></span><!--
-->}}<!--
--><span style="float:center; ">{{#invoke:Wikidades | claim | property=P1001 or P17
|qualifier=P41 or P1001/P41 or P17/P41 |qualifier2=/P1001 or /P17
|formatting=table |list=false |rowformat=$1
|rowsubformat1=[[file:$1|x11px|link=|$2]]}}<!--
--></span><!--
-->{{#if:{{#statements:P156|from={{{item|}}}}}
|<span style="float:right; margin-right: 3px;"><!--
--> {{#if:{{#invoke:string1|match
|{{#invoke:Wikidades| claim| property=P156| formatting= label|editicon=no}}
|%d%d%d%d|nomatch=}}
|{{#invoke:Wikidades | claim | property= P156 |list=firstrank|separator=<br>
|formatting= [[$1|{{((}}#invoke:string1{{!}}match{{!}}$1{{!}}%d%d%d%d{{))}}]]}}
|{{#invoke:Wikidades | claim | property= P156 |list=firstrank|separator=<br>}}
}}
→ </span>
}}
<!-- End of SUCCESSION LINE code -->
<!-- **************************************************************************
* End of "VARIABLE LOCATION" code
************************************************************************** -->
}}<!-- end infobox --></includeonly>
eveuie9wxrzu0mhon25zgo73z3u5727
فرما:Infobox election/prepare
10
30841
142926
142115
2026-06-26T09:00:31Z
آیات محراج
11062
/* */
142926
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with demography information
-->{{#ifeq:{{{case|}}}|election
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepdemo|ignore_errors=true}} |
* '''INPUT TO prepare (demography)'''
*item = {{{item|}}}
*item_prev = {{{item_prev|}}}
*round_text = {{{round_text|}}}
*case= {{{case|}}}
}}}}<!--
DEBUG. Called with case=referendum
-->{{#ifeq:{{{case|}}}|referendum
|{{#if:{{#invoke:string|match|s={{{debug|}}}|preprefe|ignore_errors=true}} |
* '''INPUT TO prepare (referendum)'''
* (1)= P726-raw option:{{{1|}}}
* (2)= P726-text option:{{{2|}}}
* (3)= P1111-votes received:{{{3|}}}
* (4)= P465-colour:{{{4|}}}
* (5)= /P1697 or /P1868-valid votes/total votes:{{{5|}}}
* (6)= /P1346-winner:{{{6|}}}
* (7)= /P8682-P8683-inverse to current:{{{7|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* yes_color={{{yes_color|}}}
* not_color={{{not_color|}}}
* case= {{{case|}}}
* item = {{{item|}}}
}}}}<!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepcand|ignore_errors=true}} |
* '''INPUT TO prepare (candidate)'''
* (1)=/P541-raw position contested:{{{1|}}}
* (2)=/P1697-votes valids:{{{2|}}}
* (3)=/P155-raw prev election:{{{3|}}} «» item_prev: {{{item_prev|}}}
* (4)=P726-raw property:{{{4|}}}
* (5)=P726/P31-instance:{{{5|}}}
* (6)=P18 or P726/P18-image person:{{{6|}}}
* (7)=P102 or P726/P102-party:{{{7|}}}
* (8)=P1813 or P726/P1813-shortname:{{{8|}}}
* (9)=P726/P154-logo:{{{9|}}}
* (10)=P210-lider:{{{10|}}}
* (11)=P465 or P726/P465 or P102/P465-colour:{{{11|}}}
* (12)=P1111-votes :{{{12|}}}
* (13)=P1114-quantity (of candidates in list):{{{13|}}}<!-- unused -->
* (14)=P1410-number of seats:{{{14|}}}
* (15)=P6149-vicepresident candidate
* (16)=data origin (P726/P991): {{{16|}}}
* (17)=P726-label_candidate:{{{17|}}}
* (18)=item 2n round:{{{18|}}}
* (19)=item_prev 2n round:{{{19|}}}
* (20)=/P1697-votes valids 2n round:{{{20|}}}
* item={{{item|}}}
* P460equivalent={{{P460equivalent|}}}
* type_election={{{type_election|}}}
* type_election1={{{type_election1|}}}
* type_election2={{{type_election2|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
* case = {{{case|}}}
* P5832 coalition = {{{coa|}}}
<hr>
}}}}{{#ifeq:{{{case|}}}|election<!--
________________________________________________________________________________
Block to prepare electoral demography information.
________________________________________________________________________________
-->|{{#ifexpr:{{{moment|0}}} > 2<!-- Dia elecció o posterior -->
|{{#if:{{#invoke:Wikidades |claim | property= P1868 |value={{{votants|}}} }}
|{{#if:{{{round_text|}}}|'''{{{round_text|}}}'''<br/>}}
<table style={{{tablestyle|}}}><!-- Global results block on election: voter turnout, spoilt votes, blanks,.. -->
{{Infobox election/showblocks |result_election=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election={{{type_election|}}}
|barcolor= {{{barcolor|}}}
|electorate={{#invoke:Wikidades|claim |property=P1867 or P1831 |list=false
|editicon=no}}
|value={{#invoke:Wikidades |claim | property= P1868 |list=bestrank |editicon=no
|value={{{votants|}}} }}
|rate= {{if empty|{{{participacio|}}}
|{{#iferror:
{{#expr:100*{{#invoke:Wikidades| claim
|property=P1868|editicon=no |formatting=raw
|list=false|value={{{votants|}}} }}
/ {{#invoke:Wikidades| claim
|property=P1867 or P1831|editicon=no |formatting=raw
|list=false|value={{{cens|}}} }}
round 2}}
|0}}<!-- end Iferror -->
}}<!-- end If empty "participacio" -->
|rate_prev={{#if:{{{item_prev|}}}
|{{#if:{{#statements:P1868|from={{{item_prev|}}} }}<!-- #votes in prev elections -->
|{{#if:{{#statements:P1867|from={{{item_prev|}}} }}<!--#electors in prev.elec.-->
{{#statements:P1831|from={{{item_prev|}}} }}<!--or electorate -->
|{{#expr:100*{{#invoke:Wikidades | claim | property= P1868
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
/ {{#invoke:Wikidades | claim | property= P1867 or P1831
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
round 2}}
}} }} }}<!-- {{#invoke:Wikidades|editAtWikidata |property=P1868 }} -->
|valids={{#invoke:Wikidades| claim| property=P1697|editicon=no|list=false
|value={{{valids|}}} }}
|blancs={{#invoke:Wikidades| claim| property=P5045|editicon=no|list=false
|value={{{blancs|}}} }}
|nuls = {{#invoke:Wikidades| claim| property=P5044|editicon=no|list=false
|value={{{nuls|}}} }}
|moment={{{moment|}}}
|item={{{item|}}}
}}<!-- end call /showblocks -->
</table>}}<!-- end If ∃ P1688-votants -->
}}<!-- end If date post-electoral -->
}}<!-- end case=election --><!--
__________________________________________________________________________
Block to prepare candidate information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|0}}} < 4|1}} <!-- before elections all candidates are listed
-->{{#ifeq:{{{16|}}}|P991|1}}<!-- when info comes from P991 instead P726, all "elected are shown"
-->{{#ifexpr:{{{moment|0}}} > 3 and <!-- when elections are done, only show %votes >= threshold
-->(100 * {{if empty|{{{12|}}}|0}} / {{{2|1}}} round 2) >= {{{threshold_list|0}}}|1 }}<!-- % votes are => threshold (2% or 25% by default)
-->{{#if:{{{14|}}} | {{#ifexpr:{{{14|}}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got a seat (P1410) -->
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got votes instead seats, because election to a person not party
-->|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5
|{{if empty|{{{6|}}}<!-- leader/candidate image -->
|NOimage_person}}<!-- NO candidate image in personal elections-->
|{{if empty|{{{9|}}}<!-- logo party image -->
|NOimage_party}}<!-- NO logo party image -->
}}
|image_candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|1}} }}
}} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{Str split|{{{10|}}}|,|2}}
|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|2}} }}
}} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}<!-- name of "eligible": person -->
|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}<!-- name of party with short name-->
|{{GetLabelFix|{{{4|}}}|linked=yes}} }}
}}
|name2={{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{#if:{{{7|}}}<!-- party ? -->
|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}<!-- party of candidate with acronim-->
|{{GetLabelFix|{{{7|}}}|linked=yes}}<!-- party of candidate without acronim-->
}}
}}
|{{#if:{{{P210txt|}}}|{{{P210txt|}}}
|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }}<!-- name of team leader -->
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}
|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank
|property=P726 |whitelist0={{{4|}}} |qualifier=P5832
|editicon=no|rowformat=$1 }}
}}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}
|{{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}
||#}}
}} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} +
{{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0
|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 <!-- avoid tag as "win" direct multi voting election (direct chamber deputies) -->
|{{#if:{{#invoke:Wikidades | claim | property= P991
|colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value={{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{{14|}}}<!-- # of seats -->
|{{#if:{{{12|}}} | {{{12|}}}<!-- # of votes -->
|{{#iferror:
{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|colformat1=raw
| formatting = table |list = false |editicon=no |whitelist0={{{4|}}}
| rowformat= $1 |separator=}}<!-- get #votes from P726 for elected party/person-->
}} }}
}} }}
|scope={{{2|}}}<!-- # of total seats for aggregate, #votes for the election -->
|rate= {{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#iferror:
{{#expr:100* {{#ifeq:{{{type_election1|}}}|limited-aggregate
|0+{{formatnum:{{{14|0}}}|R}}|0+{{formatnum:{{{12|0}}}|R}} }}<!-- #seats for aggregate, #vots for others -->
/ (0+{{formatnum:{{{2|1}}}|R}}) round 2}}
}} }}
|rate_prev={{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }}
}} }} }}
|value2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
}} }} }}
|scope2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:0+0{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}
|qualifier=P1410 |separator=+ |editicon=no|formatting=raw}} }}
|{{{20|}}}<!-- #votes for the 2nd. round election -->
}} }}
|rate2= {{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#if:{{{18|}}}<!-- item2 exists
-->|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#iferror:<!-- 100 * value2 / scope2 -->
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:100* (0+{{formatnum:{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}|R}})
/ (0+{{formatnum:{{{20|1}}}|R}})
}}
|{{#expr:100* (0+{{formatnum:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting = raw |list = false |editicon=no|item={{{18|}}}
|whitelist0={{{4|}}} | rowformat= $1 |colformat1=raw}}|R}})
/ (0+{{formatnum:{{#invoke:Wikidades| claim | property= P1697 |item={{{18|}}}
|formatting=raw|list= false |editicon=no}}|R}}) round 2}}
}}
}} }} }} }}
|rate_prev2={{#if:{{{19|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|seat_1={{#switch:{{{type_election|}}}
|proportional|double|limited-aggregate
={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false
|formatting=ucfirst |editicon=no
|item={{{1|}}} }}<!-- generic position name from subclasse, if exists -->
|{{GetLabelFix|{{{1|}}}|linked=yes}}
}}
|direct
={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }}
}}
|value_seat_1={{#ifexpr:{{{moment|0}}}<3|<!-- no elections yet, no results
-->|{{#if:{{{14|}}}|{{{14|}}}<!-- seats comes from generic invoke -->
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|seat_2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election|}}}|double
|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table
|property=P541 |qualifier=P541/P279 |colformat1=ucfirst
|item={{{18|}}}|rowformat=$1}}<!-- generic position name from subclasse, if exists -->
|{{#invoke:Wikidades |claim |list=false |editicon=no
|property=P541 |formatting=ucfirst |item={{{18|}}}}}
}}
}} }}
|value_seat_2={{#if:{{{18|}}}
|{{#ifexpr:{{{moment|0}}}< 3 |<!-- no elections yet, no results
-->|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }} }}
|moment={{{moment|}}}
}}<!-- end if threshold -->
}}<!-- end CASE=candidate -->
}}<!-- __________________________________________________________________________
Block to prepare REFERENDUM option information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|referendum<!--
-->|{{Infobox election/showblocks|result_referendum=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election ={{{type_election|}}}
|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{{yes_color|}}}<!-- article manual param. -->
|no_in_referendum ={{{not_color|}}} }}
|{{{4|}}}<!-- color from WD qualifier -->
|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{MyValue|IBelection|yes_color}}<!-- article manual param. -->
|no_in_referendum ={{MyValue|IBelection|not_color}} }}
}}
|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}<!--
-->|{{ucfirst:{{if empty|{{{2|}}}
|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }}
}} }}
|{{{2|}}}
}}
|value={{{3|}}}
|win={{#ifeq:{{{1|}}}|{{{6|}}}|y<!-- when P1346 {{{6|}}}, compare with current Q -->
|{{#iferror:{{#ifexpr:0+{{formatnum:{{{3|0}}}|R}} > 0+{{formatnum:{{{7|0}}}|R}}|y}}<!-- when current #vots > vot of another option {{{7|}}} -->
}}
}}
|scope= {{{5|}}}
|moment={{{moment|}}} }}
}}<!-- end CASE=candidate --></includeonly>
aykku37e5ojf8jvoahqnk94th6iwjfc
142928
142926
2026-06-26T09:44:55Z
آیات محراج
11062
/* */
142928
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with demography information
-->{{#ifeq:{{{case|}}}|election
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepdemo|ignore_errors=true}} |
* '''INPUT TO prepare (demography)'''
*item = {{{item|}}}
*item_prev = {{{item_prev|}}}
*round_text = {{{round_text|}}}
*case= {{{case|}}}
}}}}<!--
DEBUG. Called with case=referendum
-->{{#ifeq:{{{case|}}}|referendum
|{{#if:{{#invoke:string|match|s={{{debug|}}}|preprefe|ignore_errors=true}} |
* '''INPUT TO prepare (referendum)'''
* (1)= P726-raw option:{{{1|}}}
* (2)= P726-text option:{{{2|}}}
* (3)= P1111-votes received:{{{3|}}}
* (4)= P465-colour:{{{4|}}}
* (5)= /P1697 or /P1868-valid votes/total votes:{{{5|}}}
* (6)= /P1346-winner:{{{6|}}}
* (7)= /P8682-P8683-inverse to current:{{{7|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* yes_color={{{yes_color|}}}
* not_color={{{not_color|}}}
* case= {{{case|}}}
* item = {{{item|}}}
}}}}<!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepcand|ignore_errors=true}} |
* '''INPUT TO prepare (candidate)'''
* (1)=/P541-raw position contested:{{{1|}}}
* (2)=/P1697-votes valids:{{{2|}}}
* (3)=/P155-raw prev election:{{{3|}}} «» item_prev: {{{item_prev|}}}
* (4)=P726-raw property:{{{4|}}}
* (5)=P726/P31-instance:{{{5|}}}
* (6)=P18 or P726/P18-image person:{{{6|}}}
* (7)=P102 or P726/P102-party:{{{7|}}}
* (8)=P1813 or P726/P1813-shortname:{{{8|}}}
* (9)=P726/P154-logo:{{{9|}}}
* (10)=P210-lider:{{{10|}}}
* (11)=P465 or P726/P465 or P102/P465-colour:{{{11|}}}
* (12)=P1111-votes :{{{12|}}}
* (13)=P1114-quantity (of candidates in list):{{{13|}}}<!-- unused -->
* (14)=P1410-number of seats:{{{14|}}}
* (15)=P6149-vicepresident candidate
* (16)=data origin (P726/P991): {{{16|}}}
* (17)=P726-label_candidate:{{{17|}}}
* (18)=item 2n round:{{{18|}}}
* (19)=item_prev 2n round:{{{19|}}}
* (20)=/P1697-votes valids 2n round:{{{20|}}}
* item={{{item|}}}
* P460equivalent={{{P460equivalent|}}}
* type_election={{{type_election|}}}
* type_election1={{{type_election1|}}}
* type_election2={{{type_election2|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
* case = {{{case|}}}
* P5832 coalition = {{{coa|}}}
<hr>
}}}}{{#ifeq:{{{case|}}}|election<!--
________________________________________________________________________________
Block to prepare electoral demography information.
________________________________________________________________________________
-->|{{#ifexpr:{{{moment|0}}} > 2<!-- Dia elecció o posterior -->
|{{#if:{{#invoke:Wikidades |claim | property= P1868 |value={{{votants|}}} }}
|{{#if:{{{round_text|}}}|'''{{{round_text|}}}'''<br/>}}
<table style={{{tablestyle|}}}><!-- Global results block on election: voter turnout, spoilt votes, blanks,.. -->
{{Infobox election/showblocks |result_election=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election={{{type_election|}}}
|barcolor= {{{barcolor|}}}
|electorate={{#invoke:Wikidades|claim |property=P1867 or P1831 |list=false
|editicon=no}}
|value={{#invoke:Wikidades |claim | property= P1868 |list=bestrank |editicon=no
|value={{{votants|}}} }}
|rate= {{if empty|{{{participacio|}}}
|{{#iferror:
{{#expr:100*{{#invoke:Wikidades| claim
|property=P1868|editicon=no |formatting=raw
|list=false|value={{{votants|}}} }}
/ {{#invoke:Wikidades| claim
|property=P1867 or P1831|editicon=no |formatting=raw
|list=false|value={{{cens|}}} }}
round 2}}
|0}}<!-- end Iferror -->
}}<!-- end If empty "participacio" -->
|rate_prev={{#if:{{{item_prev|}}}
|{{#if:{{#statements:P1868|from={{{item_prev|}}} }}<!-- #votes in prev elections -->
|{{#if:{{#statements:P1867|from={{{item_prev|}}} }}<!--#electors in prev.elec.-->
{{#statements:P1831|from={{{item_prev|}}} }}<!--or electorate -->
|{{#expr:100*{{#invoke:Wikidades | claim | property= P1868
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
/ {{#invoke:Wikidades | claim | property= P1867 or P1831
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
round 2}}
}} }} }}<!-- {{#invoke:Wikidades|editAtWikidata |property=P1868 }} -->
|valids={{#invoke:Wikidades| claim| property=P1697|editicon=no|list=false
|value={{{valids|}}} }}
|blancs={{#invoke:Wikidades| claim| property=P5045|editicon=no|list=false
|value={{{blancs|}}} }}
|nuls = {{#invoke:Wikidades| claim| property=P5044|editicon=no|list=false
|value={{{nuls|}}} }}
|moment={{{moment|}}}
|item={{{item|}}}
}}<!-- end call /showblocks -->
</table>}}<!-- end If ∃ P1688-votants -->
}}<!-- end If date post-electoral -->
}}<!-- end case=election --><!--
__________________________________________________________________________
Block to prepare candidate information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|0}}} < 4|1}} <!-- before elections all candidates are listed
-->{{#ifeq:{{{16|}}}|P991|1}}<!-- when info comes from P991 instead P726, all "elected are shown"
-->{{#ifexpr:{{{moment|0}}} > 3 and <!-- when elections are done, only show %votes >= threshold
-->(100 * {{formatnum:{{if empty|{{{12|}}}|0}}|R}} / {{formatnum:{{{2|1}}}|R}} round 2) >= {{formatnum:{{{threshold_list|0}}}|R}}|1 }}<!-- % votes are => threshold (2% or 25% by default)
-->{{#if:{{{14|}}} | {{#ifexpr:{{formatnum:{{{14|}}}|R}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got a seat (P1410) -->
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got votes instead seats, because election to a person not party
-->|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5
|{{if empty|{{{6|}}}<!-- leader/candidate image -->
|NOimage_person}}<!-- NO candidate image in personal elections-->
|{{if empty|{{{9|}}}<!-- logo party image -->
|NOimage_party}}<!-- NO logo party image -->
}}
|image_candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|1}} }}
}} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{Str split|{{{10|}}}|,|2}}
|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|2}} }}
}} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}<!-- name of "eligible": person -->
|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}<!-- name of party with short name-->
|{{GetLabelFix|{{{4|}}}|linked=yes}} }}
}}
|name2={{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{#if:{{{7|}}}<!-- party ? -->
|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}<!-- party of candidate with acronim-->
|{{GetLabelFix|{{{7|}}}|linked=yes}}<!-- party of candidate without acronim-->
}}
}}
|{{#if:{{{P210txt|}}}|{{{P210txt|}}}
|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }}<!-- name of team leader -->
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}
|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank
|property=P726 |whitelist0={{{4|}}} |qualifier=P5832
|editicon=no|rowformat=$1 }}
}}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}
|{{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}
||#}}
}} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} +
{{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0
|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 <!-- avoid tag as "win" direct multi voting election (direct chamber deputies) -->
|{{#if:{{#invoke:Wikidades | claim | property= P991
|colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value={{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{{14|}}}<!-- # of seats -->
|{{#if:{{{12|}}} | {{{12|}}}<!-- # of votes -->
|{{#iferror:
{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|colformat1=raw
| formatting = table |list = false |editicon=no |whitelist0={{{4|}}}
| rowformat= $1 |separator=}}<!-- get #votes from P726 for elected party/person-->
}} }}
}} }}
|scope={{{2|}}}<!-- # of total seats for aggregate, #votes for the election -->
|rate= {{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#iferror:
{{#expr:100* {{#ifeq:{{{type_election1|}}}|limited-aggregate
|0+{{formatnum:{{{14|0}}}|R}}|0+{{formatnum:{{{12|0}}}|R}} }}<!-- #seats for aggregate, #vots for others -->
/ (0+{{formatnum:{{{2|1}}}|R}}) round 2}}
}} }}
|rate_prev={{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }}
}} }} }}
|value2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
}} }} }}
|scope2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:0+0{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}
|qualifier=P1410 |separator=+ |editicon=no|formatting=raw}} }}
|{{{20|}}}<!-- #votes for the 2nd. round election -->
}} }}
|rate2= {{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#if:{{{18|}}}<!-- item2 exists
-->|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#iferror:<!-- 100 * value2 / scope2 -->
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:100* (0+{{formatnum:{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}|R}})
/ (0+{{formatnum:{{{20|1}}}|R}})
}}
|{{#expr:100* (0+{{formatnum:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting = raw |list = false |editicon=no|item={{{18|}}}
|whitelist0={{{4|}}} | rowformat= $1 |colformat1=raw}}|R}})
/ (0+{{formatnum:{{#invoke:Wikidades| claim | property= P1697 |item={{{18|}}}
|formatting=raw|list= false |editicon=no}}|R}}) round 2}}
}}
}} }} }} }}
|rate_prev2={{#if:{{{19|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|seat_1={{#switch:{{{type_election|}}}
|proportional|double|limited-aggregate
={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false
|formatting=ucfirst |editicon=no
|item={{{1|}}} }}<!-- generic position name from subclasse, if exists -->
|{{GetLabelFix|{{{1|}}}|linked=yes}}
}}
|direct
={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }}
}}
|value_seat_1={{#ifexpr:{{{moment|0}}}<3|<!-- no elections yet, no results
-->|{{#if:{{{14|}}}|{{{14|}}}<!-- seats comes from generic invoke -->
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|seat_2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election|}}}|double
|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table
|property=P541 |qualifier=P541/P279 |colformat1=ucfirst
|item={{{18|}}}|rowformat=$1}}<!-- generic position name from subclasse, if exists -->
|{{#invoke:Wikidades |claim |list=false |editicon=no
|property=P541 |formatting=ucfirst |item={{{18|}}}}}
}}
}} }}
|value_seat_2={{#if:{{{18|}}}
|{{#ifexpr:{{{moment|0}}}< 3 |<!-- no elections yet, no results
-->|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }} }}
|moment={{{moment|}}}
}}<!-- end if threshold -->
}}<!-- end CASE=candidate -->
}}<!-- __________________________________________________________________________
Block to prepare REFERENDUM option information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|referendum<!--
-->|{{Infobox election/showblocks|result_referendum=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election ={{{type_election|}}}
|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{{yes_color|}}}<!-- article manual param. -->
|no_in_referendum ={{{not_color|}}} }}
|{{{4|}}}<!-- color from WD qualifier -->
|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{MyValue|IBelection|yes_color}}<!-- article manual param. -->
|no_in_referendum ={{MyValue|IBelection|not_color}} }}
}}
|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}<!--
-->|{{ucfirst:{{if empty|{{{2|}}}
|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }}
}} }}
|{{{2|}}}
}}
|value={{{3|}}}
|win={{#ifeq:{{{1|}}}|{{{6|}}}|y<!-- when P1346 {{{6|}}}, compare with current Q -->
|{{#iferror:{{#ifexpr:0+{{formatnum:{{{3|0}}}|R}} > 0+{{formatnum:{{{7|0}}}|R}}|y}}<!-- when current #vots > vot of another option {{{7|}}} -->
}}
}}
|scope= {{{5|}}}
|moment={{{moment|}}} }}
}}<!-- end CASE=candidate --></includeonly>
kyyhxvodcyula4ofs03nk1qvlqtjg1i
142931
142928
2026-06-26T10:23:19Z
آیات محراج
11062
/* */
142931
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with demography information
-->{{#ifeq:{{{case|}}}|election
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepdemo|ignore_errors=true}} |
* '''INPUT TO prepare (demography)'''
*item = {{{item|}}}
*item_prev = {{{item_prev|}}}
*round_text = {{{round_text|}}}
*case= {{{case|}}}
}}}}<!--
DEBUG. Called with case=referendum
-->{{#ifeq:{{{case|}}}|referendum
|{{#if:{{#invoke:string|match|s={{{debug|}}}|preprefe|ignore_errors=true}} |
* '''INPUT TO prepare (referendum)'''
* (1)= P726-raw option:{{{1|}}}
* (2)= P726-text option:{{{2|}}}
* (3)= P1111-votes received:{{{3|}}}
* (4)= P465-colour:{{{4|}}}
* (5)= /P1697 or /P1868-valid votes/total votes:{{{5|}}}
* (6)= /P1346-winner:{{{6|}}}
* (7)= /P8682-P8683-inverse to current:{{{7|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* yes_color={{{yes_color|}}}
* not_color={{{not_color|}}}
* case= {{{case|}}}
* item = {{{item|}}}
}}}}<!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepcand|ignore_errors=true}} |
* '''INPUT TO prepare (candidate)'''
* (1)=/P541-raw position contested:{{{1|}}}
* (2)=/P1697-votes valids:{{{2|}}}
* (3)=/P155-raw prev election:{{{3|}}} «» item_prev: {{{item_prev|}}}
* (4)=P726-raw property:{{{4|}}}
* (5)=P726/P31-instance:{{{5|}}}
* (6)=P18 or P726/P18-image person:{{{6|}}}
* (7)=P102 or P726/P102-party:{{{7|}}}
* (8)=P1813 or P726/P1813-shortname:{{{8|}}}
* (9)=P726/P154-logo:{{{9|}}}
* (10)=P210-lider:{{{10|}}}
* (11)=P465 or P726/P465 or P102/P465-colour:{{{11|}}}
* (12)=P1111-votes :{{{12|}}}
* (13)=P1114-quantity (of candidates in list):{{{13|}}}<!-- unused -->
* (14)=P1410-number of seats:{{{14|}}}
* (15)=P6149-vicepresident candidate
* (16)=data origin (P726/P991): {{{16|}}}
* (17)=P726-label_candidate:{{{17|}}}
* (18)=item 2n round:{{{18|}}}
* (19)=item_prev 2n round:{{{19|}}}
* (20)=/P1697-votes valids 2n round:{{{20|}}}
* item={{{item|}}}
* P460equivalent={{{P460equivalent|}}}
* type_election={{{type_election|}}}
* type_election1={{{type_election1|}}}
* type_election2={{{type_election2|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
* case = {{{case|}}}
* P5832 coalition = {{{coa|}}}
<hr>
}}}}{{#ifeq:{{{case|}}}|election<!--
________________________________________________________________________________
Block to prepare electoral demography information.
________________________________________________________________________________
-->|{{#ifexpr:{{{moment|0}}} > 2<!-- Dia elecció o posterior -->
|{{#if:{{#invoke:Wikidades |claim | property= P1868 |value={{{votants|}}} }}
|{{#if:{{{round_text|}}}|'''{{{round_text|}}}'''<br/>}}
<table style={{{tablestyle|}}}><!-- Global results block on election: voter turnout, spoilt votes, blanks,.. -->
{{Infobox election/showblocks |result_election=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election={{{type_election|}}}
|barcolor= {{{barcolor|}}}
|electorate={{#invoke:Wikidades|claim |property=P1867 or P1831 |list=false
|editicon=no}}
|value={{#invoke:Wikidades |claim | property= P1868 |list=bestrank |editicon=no
|value={{{votants|}}} }}
|rate= {{if empty|{{{participacio|}}}
|{{#iferror:
{{#expr:100*{{#invoke:Wikidades| claim
|property=P1868|editicon=no |formatting=raw
|list=false|value={{{votants|}}} }}
/ {{#invoke:Wikidades| claim
|property=P1867 or P1831|editicon=no |formatting=raw
|list=false|value={{{cens|}}} }}
round 2}}
|0}}<!-- end Iferror -->
}}<!-- end If empty "participacio" -->
|rate_prev={{#if:{{{item_prev|}}}
|{{#if:{{#statements:P1868|from={{{item_prev|}}} }}<!-- #votes in prev elections -->
|{{#if:{{#statements:P1867|from={{{item_prev|}}} }}<!--#electors in prev.elec.-->
{{#statements:P1831|from={{{item_prev|}}} }}<!--or electorate -->
|{{#expr:100*{{#invoke:Wikidades | claim | property= P1868
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
/ {{#invoke:Wikidades | claim | property= P1867 or P1831
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
round 2}}
}} }} }}<!-- {{#invoke:Wikidades|editAtWikidata |property=P1868 }} -->
|valids={{#invoke:Wikidades| claim| property=P1697|editicon=no|list=false
|value={{{valids|}}} }}
|blancs={{#invoke:Wikidades| claim| property=P5045|editicon=no|list=false
|value={{{blancs|}}} }}
|nuls = {{#invoke:Wikidades| claim| property=P5044|editicon=no|list=false
|value={{{nuls|}}} }}
|moment={{{moment|}}}
|item={{{item|}}}
}}<!-- end call /showblocks -->
</table>}}<!-- end If ∃ P1688-votants -->
}}<!-- end If date post-electoral -->
}}<!-- end case=election --><!--
__________________________________________________________________________
Block to prepare candidate information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|0}}} < 4|1}} <!-- before elections all candidates are listed
-->{{#ifeq:{{{16|}}}|P991|1}}<!-- when info comes from P991 instead P726, all "elected are shown"
-->{{#ifexpr:{{{moment|0}}} > 3 and <!-- when elections are done, only show %votes >= threshold
-->(100 * {{#invoke:String|replace|{{if empty|{{{12|}}}|0}}|[^0-9.]||plain=false}} / {{#invoke:String|replace|{{{2|1}}}|[^0-9.]||plain=false}} round 2) >= {{#invoke:String|replace|{{{threshold_list|0}}}|[^0-9.]||plain=false}}|1 }}<!-- % votes are => threshold (2% or 25% by default)
-->{{#if:{{{14|}}} | {{#ifexpr:{{#invoke:String|replace|{{{14|}}}|[^0-9.]||plain=false}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got a seat (P1410) -->
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:0+{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = raw |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got votes instead seats, because election to a person not party
-->|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5
|{{if empty|{{{6|}}}<!-- leader/candidate image -->
|NOimage_person}}<!-- NO candidate image in personal elections-->
|{{if empty|{{{9|}}}<!-- logo party image -->
|NOimage_party}}<!-- NO logo party image -->
}}
|image_candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|1}} }}
}} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{Str split|{{{10|}}}|,|2}}
|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|2}} }}
}} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}<!-- name of "eligible": person -->
|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}<!-- name of party with short name-->
|{{GetLabelFix|{{{4|}}}|linked=yes}} }}
}}
|name2={{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{#if:{{{7|}}}<!-- party ? -->
|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}<!-- party of candidate with acronim-->
|{{GetLabelFix|{{{7|}}}|linked=yes}}<!-- party of candidate without acronim-->
}}
}}
|{{#if:{{{P210txt|}}}|{{{P210txt|}}}
|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }}<!-- name of team leader -->
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}
|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank
|property=P726 |whitelist0={{{4|}}} |qualifier=P5832
|editicon=no|rowformat=$1 }}
}}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}
|{{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}
||#}}
}} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} +
{{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0
|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 <!-- avoid tag as "win" direct multi voting election (direct chamber deputies) -->
|{{#if:{{#invoke:Wikidades | claim | property= P991
|colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value={{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{{14|}}}<!-- # of seats -->
|{{#if:{{{12|}}} | {{{12|}}}<!-- # of votes -->
|{{#iferror:
{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|colformat1=raw
| formatting = table |list = false |editicon=no |whitelist0={{{4|}}}
| rowformat= $1 |separator=}}<!-- get #votes from P726 for elected party/person-->
}} }}
}} }}
|scope={{{2|}}}<!-- # of total seats for aggregate, #votes for the election -->
|rate= {{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#iferror:{{#expr: 100 * {{#invoke:String|replace|{{#ifeq:{{{type_election1|}}}|limited-aggregate|{{{14|0}}}|{{{12|0}}}}}|[^0-9.]||plain=false}} / {{#invoke:String|replace|{{{2|1}}}|[^0-9.]||plain=false}} round 2}}
}} }}
|rate_prev={{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }}
}} }} }}
|value2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
}} }} }}
|scope2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:0+0{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}
|qualifier=P1410 |separator=+ |editicon=no|formatting=raw}} }}
|{{{20|}}}<!-- #votes for the 2nd. round election -->
}} }}
|rate2= {{#ifexpr:{{{moment|0}}}<3|<!-- no vote values for not started elections
-->|{{#if:{{{18|}}}<!-- item2 exists
-->|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#iferror:<!-- 100 * value2 / scope2 -->
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:100 * {{#invoke:String|replace|{{#invoke:Wikidades|claim|property=P991|item={{{18|}}}|qualifier=P1410|colformat1=raw|formatting=raw|list=false|editicon=no|whitelist0={{{4|}}}|rowformat=$1}}|[^0-9.]||plain=false}} / {{#invoke:String|replace|{{{20|1}}}|[^0-9.]||plain=false}} }}
|{{#expr:100 * {{#invoke:String|replace|{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111 |formatting=raw |list=false |editicon=no|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 |colformat1=raw}}|[^0-9.]||plain=false}} / {{#invoke:String|replace|{{#invoke:Wikidades| claim | property= P1697 |item={{{18|}}}|formatting=raw|list= false |editicon=no}}|[^0-9.]||plain=false}} round 2}}
}}
}} }} }} }}
|rate_prev2={{#if:{{{19|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|seat_1={{#switch:{{{type_election|}}}
|proportional|double|limited-aggregate
={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false
|formatting=ucfirst |editicon=no
|item={{{1|}}} }}<!-- generic position name from subclasse, if exists -->
|{{GetLabelFix|{{{1|}}}|linked=yes}}
}}
|direct
={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }}
}}
|value_seat_1={{#ifexpr:{{{moment|0}}}<3|<!-- no elections yet, no results
-->|{{#if:{{{14|}}}|{{{14|}}}<!-- seats comes from generic invoke -->
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
|seat_2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election|}}}|double
|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table
|property=P541 |qualifier=P541/P279 |colformat1=ucfirst
|item={{{18|}}}|rowformat=$1}}<!-- generic position name from subclasse, if exists -->
|{{#invoke:Wikidades |claim |list=false |editicon=no
|property=P541 |formatting=ucfirst |item={{{18|}}}}}
}}
}} }}
|value_seat_2={{#if:{{{18|}}}
|{{#ifexpr:{{{moment|0}}}< 3 |<!-- no elections yet, no results
-->|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }} }}
|moment={{{moment|}}}
}}<!-- end if threshold -->
}}<!-- end CASE=candidate -->
}}<!-- __________________________________________________________________________
Block to prepare REFERENDUM option information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|referendum<!--
-->|{{Infobox election/showblocks|result_referendum=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election ={{{type_election|}}}
|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{{yes_color|}}}<!-- article manual param. -->
|no_in_referendum ={{{not_color|}}} }}
|{{{4|}}}<!-- color from WD qualifier -->
|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{MyValue|IBelection|yes_color}}<!-- article manual param. -->
|no_in_referendum ={{MyValue|IBelection|not_color}} }}
}}
|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}<!--
-->|{{ucfirst:{{if empty|{{{2|}}}
|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }}
}} }}
|{{{2|}}}
}}
|value={{{3|}}}
|win={{#ifeq:{{{1|}}}|{{{6|}}}|y<!-- when P1346 {{{6|}}}, compare with current Q -->
|{{#iferror:{{#ifexpr:{{#invoke:String|replace|{{{3|0}}}|[^0-9.]||plain=false}} > {{#invoke:String|replace|{{{7|0}}}|[^0-9.]||plain=false}}|y}}<!-- when current #vots > vot of another option {{{7|}}} -->
}}
}}
|scope= {{{5|}}}
|moment={{{moment|}}} }}
}}<!-- end CASE=candidate --></includeonly>
5285d0obj1cqyhx88n93oow3eswb02r
142932
142931
2026-06-26T10:25:24Z
آیات محراج
11062
/* */
142932
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|0}}} < 4|1}}
|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5|{{if empty|{{{6|}}}|NOimage_person}}|{{if empty|{{{9|}}}|NOimage_party}} }}
|image_candidate= {{#ifeq:{{{5|}}}|Q5||{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false|editicon=no |item={{Str split|{{{10|}}}|,|1}} }} }} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5||{{#if:{{Str split|{{{10|}}}|,|2}}|{{#invoke:Wikidades | claim | property= P18 |list = false|editicon=no |item={{Str split|{{{10|}}}|,|2}} }} }} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}|{{GetLabelFix|{{{4|}}}|linked=yes}} }} }}
|name2={{#ifeq:{{{5|}}}|Q5|{{#if:{{{7|}}}|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}|{{GetLabelFix|{{{7|}}}|linked=yes}} }} }}|{{#if:{{{P210txt|}}}|{{{P210txt|}}}|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }} }}
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank|property=P726 |whitelist0={{{4|}}} |qualifier=P5832|editicon=no|rowformat=$1 }} }}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}|{{#ifeq:{{{5|}}}|Q5|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}||#}} }} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} + {{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 |{{#if:{{#invoke:Wikidades | claim | property= P991|colformat1=raw|separator=|formatting = table |list = false |editicon=no|whitelist0={{{4|}}} | rowformat=$1}}|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value={{#ifexpr:{{{moment|0}}}<3||{{#ifeq:{{{type_election1|}}}|limited-aggregate|{{{14|}}}|{{#if:{{{12|}}} | {{{12|}}}|{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|colformat1=raw|formatting = raw |list = false |editicon=no |whitelist0={{{4|}}} | rowformat= $1 |separator=}} }} }} }}
|scope={{{2|}}}
|rate= {{#ifexpr:{{{moment|0}}}<3||{{#expr: 100 * {{#invoke:String|replace|{{#if:{{{12|}}}|{{{12}}}|{{#invoke:Wikidades|claim|property=P726|qualifier=P1111|formatting=raw|list=false|item={{{4|}}} }} }}|[^0-9.]||plain=false}} / {{#invoke:String|replace|{{{2|1}}}|[^0-9.]||plain=false}} round 2}}}}
|rate_prev={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results |function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}} |candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}} |candidate_look={{{4|}}} }} }}
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}|{{#switch:{{{type_election|}}}|two_rounds|double={{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|formatting= table |list=false |editicon=no |separator= |item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }} }} }} }}
|value2={{#if:{{{18|}}}|{{#switch:{{{type_election|}}}|two_rounds|double={{#ifeq:{{{type_election2|}}}|limited-aggregate|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}|qualifier= P1410 |colformat1=raw|separator=|formatting = table |list = false |editicon=no|whitelist0={{{4|}}} | rowformat=$1}}|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw|formatting= table |list=false |editicon=no |separator= |item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }} }} }} }}
|scope2={{#if:{{{18|}}}|{{#ifeq:{{{type_election2|}}}|limited-aggregate|{{#expr:0+0{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}|qualifier=P1410 |separator=+ |editicon=no|formatting=raw}} }}|{{{20|}}} }} }}
|rate2= {{#ifexpr:{{{moment|0}}}<3||{{#if:{{{18|}}}|{{#expr: 100 * {{#invoke:String|replace|{{#ifeq:{{{type_election2|}}}|limited-aggregate|{{#invoke:Wikidades|claim|property=P991|item={{{18|}}}|qualifier=P1410|formatting=raw|list=false|editicon=no|whitelist0={{{4|}}}|rowformat=$1}}|{{#invoke:Wikidades|claim|property=P726|qualifier=P1111|formatting=raw|list=false|editicon=no|item={{{18|}}}|whitelist0={{{4|}}}|rowformat=$1}} }}|[^0-9.]||plain=false}} / {{#invoke:String|replace|{{{20|1}}}|[^0-9.]||plain=false}} round 2}} }} }}
|rate_prev2={{#if:{{{19|}}} | {{Infobox_election/prepare_prev_results |function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}} |candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}} |candidate_look={{{4|}}} }} }}
|seat_1={{#switch:{{{type_election|}}}|proportional|double|limited-aggregate={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false|formatting=ucfirst |editicon=no|item={{{1|}}} }}|{{GetLabelFix|{{{1|}}}|linked=yes}} }}|direct={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }} }}
|value_seat_1={{#ifexpr:{{{moment|0}}}<3||{{#if:{{{14|}}}|{{{14|}}}|{{#invoke:Wikidades| claim | property= P991|qualifier= P1410 |colformat1=raw|separator=|formatting = table |list = false |editicon=no|whitelist0={{{4|}}} | rowformat=$1}} }} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results |function =seat |item_ant={{{3|}}} |candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |candidate_look={{{4|}}} }} }}
|seat_2={{#if:{{{18|}}}|{{#ifeq:{{{type_election|}}}|double|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table|property=P541 |qualifier=P541/P279 |colformat1=ucfirst|item={{{18|}}}|rowformat=$1}}|{{#invoke:Wikidades |claim |list=false |editicon=no|property=P541 |formatting=ucfirst |item={{{18|}}}}} }} }} }}
|value_seat_2={{#if:{{{18|}}}|{{#ifexpr:{{{moment|0}}}< 3 ||{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}|qualifier= P1410 |colformat1=raw|separator=|formatting = table |list = false |editicon=no|whitelist0={{{4|}}} | rowformat=$1}} }} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}| {{Infobox_election/prepare_prev_results |function =seat |item_ant={{{19|}}} |candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |candidate_look={{{4|}}} }} }} }}
|moment={{{moment|}}}
}}
}}<!--
-->{{#ifeq:{{{case|}}}|referendum|{{Infobox election/showblocks|result_referendum=yes|lang={{{lang|}}}|debug = {{{debug|}}}|type_election ={{{type_election|}}}|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}|yes_in_referendum={{{yes_color|}}}|no_in_referendum ={{{not_color|}}} }}|{{{4|}}}|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}|yes_in_referendum={{MyValue|IBelection|yes_color}}|no_in_referendum ={{MyValue|IBelection|not_color}} }} }}|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}|{{ucfirst:{{if empty|{{{2|}}}|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }} }} }}|{{{2|}}} }}|value={{{3|}}}|win={{#ifeq:{{{1|}}}|{{{6|}}}|y|{{#iferror:{{#expr: ({{#invoke:String|replace|{{{3|0}}}|[^0-9.]||plain=false}} > {{#invoke:String|replace|{{{7|0}}}|[^0-9.]||plain=false}}) }}|y}} }}|scope= {{{5|}}}|moment={{{moment|}}} }} }}</includeonly>
blr62brvnmk81ypfq7clpnhqlr8tk8l
142933
142932
2026-06-26T10:27:46Z
آیات محراج
11062
/* */
142933
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with demography information
-->{{#ifeq:{{{case|}}}|election
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepdemo|ignore_errors=true}} |
* '''INPUT TO prepare (demography)'''
*item = {{{item|}}}
*item_prev = {{{item_prev|}}}
*round_text = {{{round_text|}}}
*case= {{{case|}}}
}}}}<!--
DEBUG. Called with case=referendum
-->{{#ifeq:{{{case|}}}|referendum
|{{#if:{{#invoke:string|match|s={{{debug|}}}|preprefe|ignore_errors=true}} |
* '''INPUT TO prepare (referendum)'''
* (1)= P726-raw option:{{{1|}}}
* (2)= P726-text option:{{{2|}}}
* (3)= P1111-votes received:{{{3|}}}
* (4)= P465-colour:{{{4|}}}
* (5)= /P1697 or /P1868-valid votes/total votes:{{{5|}}}
* (6)= /P1346-winner:{{{6|}}}
* (7)= /P8682-P8683-inverse to current:{{{7|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* yes_color={{{yes_color|}}}
* not_color={{{not_color|}}}
* case= {{{case|}}}
* item = {{{item|}}}
}}}}<!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepcand|ignore_errors=true}} |
* '''INPUT TO prepare (candidate)'''
* (1)=/P541-raw position contested:{{{1|}}}
* (2)=/P1697-votes valids:{{{2|}}}
* (3)=/P155-raw prev election:{{{3|}}} «» item_prev: {{{item_prev|}}}
* (4)=P726-raw property:{{{4|}}}
* (5)=P726/P31-instance:{{{5|}}}
* (6)=P18 or P726/P18-image person:{{{6|}}}
* (7)=P102 or P726/P102-party:{{{7|}}}
* (8)=P1813 or P726/P1813-shortname:{{{8|}}}
* (9)=P726/P154-logo:{{{9|}}}
* (10)=P210-lider:{{{10|}}}
* (11)=P465 or P726/P465 or P102/P465-colour:{{{11|}}}
* (12)=P1111-votes :{{{12|}}}
* (13)=P1114-quantity (of candidates in list):{{{13|}}}<!-- unused -->
* (14)=P1410-number of seats:{{{14|}}}
* (15)=P6149-vicepresident candidate
* (16)=data origin (P726/P991): {{{16|}}}
* (17)=P726-label_candidate:{{{17|}}}
* (18)=item 2n round:{{{18|}}}
* (19)=item_prev 2n round:{{{19|}}}
* (20)=/P1697-votes valids 2n round:{{{20|}}}
* item={{{item|}}}
* P460equivalent={{{P460equivalent|}}}
* type_election={{{type_election|}}}
* type_election1={{{type_election1|}}}
* type_election2={{{type_election2|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
* case = {{{case|}}}
* P5832 coalition = {{{coa|}}}
<hr>
}}}}{{#ifeq:{{{case|}}}|election<!--
________________________________________________________________________________
Block to prepare electoral demography information.
________________________________________________________________________________
-->|{{#ifexpr:{{{moment|}}} > 2<!-- Dia elecció o posterior -->
|{{#if:{{#invoke:Wikidades |claim | property= P1868 |value={{{votants|}}} }}
|{{#if:{{{round_text|}}}|'''{{{round_text|}}}'''<br/>}}
<table style={{{tablestyle|}}}><!-- Global results block on election: voter turnout, spoilt votes, blanks,.. -->
{{Infobox election/showblocks |result_election=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election={{{type_election|}}}
|barcolor= {{{barcolor|}}}
|electorate={{#invoke:Wikidades|claim |property=P1867 or P1831 |list=false
|editicon=no}}
|value={{#invoke:Wikidades |claim | property= P1868 |list=bestrank |editicon=no
|value={{{votants|}}} }}
|rate= {{if empty|{{{participacio|}}}
|{{#iferror:
{{#expr:100*{{#invoke:Wikidades| claim
|property=P1868|editicon=no |formatting=raw
|list=false|value={{{votants|}}} }}
/ {{#invoke:Wikidades| claim
|property=P1867 or P1831|editicon=no |formatting=raw
|list=false|value={{{cens|}}} }}
round 2}}
|0}}<!-- end Iferror -->
}}<!-- end If empty "participacio" -->
|rate_prev={{#if:{{{item_prev|}}}
|{{#if:{{#statements:P1868|from={{{item_prev|}}} }}<!-- #votes in prev elections -->
|{{#if:{{#statements:P1867|from={{{item_prev|}}} }}<!--#electors in prev.elec.-->
{{#statements:P1831|from={{{item_prev|}}} }}<!--or electorate -->
|{{#expr:100*{{#invoke:Wikidades | claim | property= P1868
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
/ {{#invoke:Wikidades | claim | property= P1867 or P1831
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
round 2}}
}} }} }}<!-- {{#invoke:Wikidades|editAtWikidata |property=P1868 }} -->
|valids={{#invoke:Wikidades| claim| property=P1697|editicon=no|list=false
|value={{{valids|}}} }}
|blancs={{#invoke:Wikidades| claim| property=P5045|editicon=no|list=false
|value={{{blancs|}}} }}
|nuls = {{#invoke:Wikidades| claim| property=P5044|editicon=no|list=false
|value={{{nuls|}}} }}
|moment={{{moment|}}}
|item={{{item|}}}
}}<!-- end call /showblocks -->
</table>}}<!-- end If ∃ P1688-votants -->
}}<!-- end If date post-electoral -->
}}<!-- end case=election --><!--
__________________________________________________________________________
Block to prepare candidate information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|}}} < 4|1}} <!-- before elections all candidates are listed
-->{{#ifeq:{{{16|}}}|P991|1}}<!-- when info comes from P991 instead P726, all "elected are shown"
-->{{#ifexpr:{{{moment|}}} > 3 and <!-- when elections are done, only show %votes >= threshold
-->(100 * {{if empty|{{{12|}}}|0}} / {{{2|}}} round 2) >= {{{threshold_list|}}}|1 }}<!-- % votes are => threshold (2% or 25% by default)
-->{{#if:{{{14|}}} | {{#ifexpr:{{{14|}}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got a seat (P1410) -->
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got votes instead seats, because election to a person not party
-->|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5
|{{if empty|{{{6|}}}<!-- leader/candidate image -->
|NOimage_person}}<!-- NO candidate image in personal elections-->
|{{if empty|{{{9|}}}<!-- logo party image -->
|NOimage_party}}<!-- NO logo party image -->
}}
|image_candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|1}} }}
}} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{Str split|{{{10|}}}|,|2}}
|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|2}} }}
}} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}<!-- name of "eligible": person -->
|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}<!-- name of party with short name-->
|{{GetLabelFix|{{{4|}}}|linked=yes}} }}
}}
|name2={{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{#if:{{{7|}}}<!-- party ? -->
|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}<!-- party of candidate with acronim-->
|{{GetLabelFix|{{{7|}}}|linked=yes}}<!-- party of candidate without acronim-->
}}
}}
|{{#if:{{{P210txt|}}}|{{{P210txt|}}}
|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }}<!-- name of team leader -->
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}
|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank
|property=P726 |whitelist0={{{4|}}} |qualifier=P5832
<!-- |qualifier2=P5832/P154 |rowsubformat2=[[file:$2|20x20px]] NO Logo-->
|editicon=no|rowformat=<!-- $2 No Logo -->$1 }}
}}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}
|{{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}
||#}}
}} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} +
{{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0
|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 <!-- avoid tag as "win" direct multi voting election (direct chamber deputies) -->
|{{#if:{{#invoke:Wikidades | claim | property= P991
|colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value={{#ifexpr:{{{moment|}}}<3|<!-- no vote values for not started elections
-->|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{{14|}}}<!-- # of seats -->
|{{#if:{{{12|}}} | {{{12|}}}<!-- # of votes -->
|{{#iferror:
{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|colformat1=raw
| formatting = table |list = false |editicon=no |whitelist0={{{4|}}}
| rowformat= $1 |separator=}}<!-- get #votes from P726 for elected party/person-->
}} }}
}} }}
|scope={{{2|}}}<!-- # of total seats for aggregate, #votes for the election -->
|rate= {{#ifexpr:{{{moment|}}}<3|<!-- no vote values for not started elections
-->|{{#iferror:
{{#expr:100* {{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{{14|}}}|{{{12|}}}}}<!-- #seats for aggregate, #vots for others -->
/ {{{2|}}} round 2}}
}} }}
|rate_prev={{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{3|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{2|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{3|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 or P991 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{3|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }}
}} }} }}
|value2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
}} }} }}
|scope2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}
|qualifier=P1410 |separator=+ |editicon=no}} }}
|{{{20|}}}<!-- #votes for the 2nd. round election -->
}} }}
|rate2= {{#ifexpr:{{{moment|}}}<3|<!-- no vote values for not started elections
-->|{{#if:{{{18|}}}<!-- item2 exists
-->|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#iferror:<!-- 100 * value2 / scope2 -->
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:100* {{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
/ {{{20|}}}
}}
|{{#expr:100* {{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting = table |list = false |editicon=no|item={{{18|}}}
|whitelist0={{{4|}}} | rowformat= $1 |colformat1=raw}}
/ {{#invoke:Wikidades| claim | property= P1697 |item={{{18|}}}
|formatting=raw|list= false |editicon=no}} round 2}}
}}
}} }} }} }}
|rate_prev2={{#if:{{{19|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{19|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{20|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{19|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{19|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|seat_1={{#switch:{{{type_election|}}}
|proportional|double|limited-aggregate
={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false
|formatting=ucfirst |editicon=no
|item={{{1|}}} }}<!-- generic position name from subclasse, if exists -->
|{{GetLabelFix|{{{1|}}}|linked=yes}}
}}
|direct
={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }}
}}
|value_seat_1={{#ifexpr:{{{moment|}}}<3|<!-- no elections yet, no results
-->|{{#if:{{{14|}}}|{{{14|}}}<!-- seats comes from generic invoke -->
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} -->
|seat_2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election|}}}|double
|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table
|property=P541 |qualifier=P541/P279 |colformat1=ucfirst
|item={{{18|}}}|rowformat=$1}}<!-- generic position name from subclasse, if exists -->
|{{#invoke:Wikidades |claim |list=false |editicon=no
|property=P541 |formatting=ucfirst |item={{{18|}}}}}
}}
}} }}
|value_seat_2={{#if:{{{18|}}}
|{{#ifexpr:{{{moment|}}}< 3 |<!-- no elections yet, no results
-->|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#if:{{{3|}}}
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} }} -->
|moment={{{moment|}}}
}}<!-- end if threshold -->
}}<!-- end CASE=candidate -->
}}<!-- __________________________________________________________________________
Block to prepare REFERENDUM option information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|referendum<!--
-->|{{Infobox election/showblocks|result_referendum=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election ={{{type_election|}}}
|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{{yes_color|}}}<!-- article manual param. -->
|no_in_referendum ={{{not_color|}}} }}
|{{{4|}}}<!-- color from WD qualifier -->
|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{MyValue|IBelection|yes_color}}<!-- article manual param. -->
|no_in_referendum ={{MyValue|IBelection|not_color}} }}
}}
|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}<!--
-->|{{ucfirst:{{if empty|{{{2|}}}
|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }}
}} }}
|{{{2|}}}
}}
|value={{{3|}}}
|win={{#ifeq:{{{1|}}}|{{{6|}}}|y<!-- when P1346 {{{6|}}}, compare with current Q -->
|{{#iferror:{{#ifexpr:{{{3|}}} > {{{7|}}}|y}}<!-- when current #vots > vot of another option {{{7|}}} -->
}}
}}
|scope= {{{5|}}}
|moment={{{moment|}}} }}
}}<!-- end CASE=candidate --></includeonly>
4vxp6e9rcaiiu4qpl55n17oz8c63xky
142937
142933
2026-06-26T10:51:01Z
آیات محراج
11062
/* */
142937
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with demography information
-->{{#ifeq:{{{case|}}}|election
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepdemo|ignore_errors=true}} |
* '''INPUT TO prepare (demography)'''
*item = {{{item|}}}
*item_prev = {{{item_prev|}}}
*round_text = {{{round_text|}}}
*case= {{{case|}}}
}}}}<!--
DEBUG. Called with case=referendum
-->{{#ifeq:{{{case|}}}|referendum
|{{#if:{{#invoke:string|match|s={{{debug|}}}|preprefe|ignore_errors=true}} |
* '''INPUT TO prepare (referendum)'''
* (1)= P726-raw option:{{{1|}}}
* (2)= P726-text option:{{{2|}}}
* (3)= P1111-votes received:{{{3|}}}
* (4)= P465-colour:{{{4|}}}
* (5)= /P1697 or /P1868-valid votes/total votes:{{{5|}}}
* (6)= /P1346-winner:{{{6|}}}
* (7)= /P8682-P8683-inverse to current:{{{7|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* yes_color={{{yes_color|}}}
* not_color={{{not_color|}}}
* case= {{{case|}}}
* item = {{{item|}}}
}}}}<!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepcand|ignore_errors=true}} |
* '''INPUT TO prepare (candidate)'''
* (1)=/P541-raw position contested:{{{1|}}}
* (2)=/P1697-votes valids:{{{2|}}}
* (3)=/P155-raw prev election:{{{3|}}} «» item_prev: {{{item_prev|}}}
* (4)=P726-raw property:{{{4|}}}
* (5)=P726/P31-instance:{{{5|}}}
* (6)=P18 or P726/P18-image person:{{{6|}}}
* (7)=P102 or P726/P102-party:{{{7|}}}
* (8)=P1813 or P726/P1813-shortname:{{{8|}}}
* (9)=P726/P154-logo:{{{9|}}}
* (10)=P210-lider:{{{10|}}}
* (11)=P465 or P726/P465 or P102/P465-colour:{{{11|}}}
* (12)=P1111-votes :{{{12|}}}
* (13)=P1114-quantity (of candidates in list):{{{13|}}}<!-- unused -->
* (14)=P1410-number of seats:{{{14|}}}
* (15)=P6149-vicepresident candidate
* (16)=data origin (P726/P991): {{{16|}}}
* (17)=P726-label_candidate:{{{17|}}}
* (18)=item 2n round:{{{18|}}}
* (19)=item_prev 2n round:{{{19|}}}
* (20)=/P1697-votes valids 2n round:{{{20|}}}
* item={{{item|}}}
* P460equivalent={{{P460equivalent|}}}
* type_election={{{type_election|}}}
* type_election1={{{type_election1|}}}
* type_election2={{{type_election2|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
* case = {{{case|}}}
* P5832 coalition = {{{coa|}}}
<hr>
}}}}{{#ifeq:{{{case|}}}|election<!--
________________________________________________________________________________
Block to prepare electoral demography information.
________________________________________________________________________________
-->|{{#ifexpr:{{{moment|}}} > 2<!-- Dia elecció o posterior -->
|{{#if:{{#invoke:Wikidades |claim | property= P1868 |value={{{votants|}}} }}
|{{#if:{{{round_text|}}}|'''{{{round_text|}}}'''<br/>}}
<table style={{{tablestyle|}}}><!-- Global results block on election: voter turnout, spoilt votes, blanks,.. -->
{{Infobox election/showblocks |result_election=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election={{{type_election|}}}
|barcolor= {{{barcolor|}}}
|electorate={{#invoke:Wikidades|claim |property=P1867 or P1831 |list=false
|editicon=no}}
|value={{#invoke:Wikidades |claim | property= P1868 |list=bestrank |editicon=no
|value={{{votants|}}} }}
|rate= {{if empty|{{{participacio|}}}
|{{#iferror:
{{#expr:100*{{#invoke:Wikidades| claim
|property=P1868|editicon=no |formatting=raw
|list=false|value={{{votants|}}} }}
/ {{#invoke:Wikidades| claim
|property=P1867 or P1831|editicon=no |formatting=raw
|list=false|value={{{cens|}}} }}
round 2}}
|0}}<!-- end Iferror -->
}}<!-- end If empty "participacio" -->
|rate_prev={{#if:{{{item_prev|}}}
|{{#if:{{#statements:P1868|from={{{item_prev|}}} }}<!-- #votes in prev elections -->
|{{#if:{{#statements:P1867|from={{{item_prev|}}} }}<!--#electors in prev.elec.-->
{{#statements:P1831|from={{{item_prev|}}} }}<!--or electorate -->
|{{#expr:100*{{#invoke:Wikidades | claim | property= P1868
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
/ {{#invoke:Wikidades | claim | property= P1867 or P1831
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
round 2}}
}} }} }}<!-- {{#invoke:Wikidades|editAtWikidata |property=P1868 }} -->
|valids={{#invoke:Wikidades| claim| property=P1697|editicon=no|list=false
|value={{{valids|}}} }}
|blancs={{#invoke:Wikidades| claim| property=P5045|editicon=no|list=false
|value={{{blancs|}}} }}
|nuls = {{#invoke:Wikidades| claim| property=P5044|editicon=no|list=false
|value={{{nuls|}}} }}
|moment={{{moment|}}}
|item={{{item|}}}
}}<!-- end call /showblocks -->
</table>}}<!-- end If ∃ P1688-votants -->
}}<!-- end If date post-electoral -->
}}<!-- end case=election --><!--
__________________________________________________________________________
Block to prepare candidate information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|}}} < 4|1}} <!-- before elections all candidates are listed
-->{{#ifeq:{{{16|}}}|P991|1}}<!-- when info comes from P991 instead P726, all "elected are shown"
-->{{#ifexpr:{{{moment|}}} > 3 and <!-- when elections are done, only show %votes >= threshold
-->(100 * {{if empty|{{{12|}}}|0}} / {{{2|}}} round 2) >= {{{threshold_list|}}}|1 }}<!-- % votes are => threshold (2% or 25% by default)
-->{{#if:{{{14|}}} | {{#ifexpr:{{{14|}}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got a seat (P1410) -->
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got votes instead seats, because election to a person not party
-->|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5
|{{if empty|{{{6|}}}<!-- leader/candidate image -->
|NOimage_person}}<!-- NO candidate image in personal elections-->
|{{if empty|{{{9|}}}<!-- logo party image -->
|NOimage_party}}<!-- NO logo party image -->
}}
|image_candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|1}} }}
}} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{Str split|{{{10|}}}|,|2}}
|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|2}} }}
}} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}<!-- name of "eligible": person -->
|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}<!-- name of party with short name-->
|{{GetLabelFix|{{{4|}}}|linked=yes}} }}
}}
|name2={{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{#if:{{{7|}}}<!-- party ? -->
|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}<!-- party of candidate with acronim-->
|{{GetLabelFix|{{{7|}}}|linked=yes}}<!-- party of candidate without acronim-->
}}
}}
|{{#if:{{{P210txt|}}}|{{{P210txt|}}}
|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }}<!-- name of team leader -->
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}
|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank
|property=P726 |whitelist0={{{4|}}} |qualifier=P5832
<!-- |qualifier2=P5832/P154 |rowsubformat2=[[file:$2|20x20px]] NO Logo-->
|editicon=no|rowformat=<!-- $2 No Logo -->$1 }}
}}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}
|{{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}
||#}}
}} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} +
{{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0
|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 <!-- avoid tag as "win" direct multi voting election (direct chamber deputies) -->
|{{#if:{{#invoke:Wikidades | claim | property= P991
|colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value={{#ifexpr:{{{moment|}}}<3|<!-- no vote values for not started elections
-->|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{{14|}}}<!-- # of seats -->
|{{#if:{{{12|}}} | {{{12|}}}<!-- # of votes -->
|{{#iferror:
{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|colformat1=raw
| formatting = table |list = false |editicon=no |whitelist0={{{4|}}}
| rowformat= $1 |separator=}}<!-- get #votes from P726 for elected party/person-->
}} }}
}} }}
|scope={{{{2|}}}<!-- # of total seats for aggregate, #votes for the election -->
|rate= {{#ifexpr:{{{moment|}}}<3|0|<!-- no vote values for not started elections -->
{{#iferror:
{{#expr:100* {{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{formatnum:{{if empty|{{{14|}}}|0}}|R}}|{{formatnum:{{if empty|{{{12|}}}|0}}|R}} }}
/ {{formatnum:{{if empty|{{{2|}}}|1}}|R}} round 2}}
|0}}
}}
|rate_prev={{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{3|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{2|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{3|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 or P991 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{3|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }}
}} }} }}
|value2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
}} }} }}
|scope2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}
|qualifier=P1410 |separator=+ |editicon=no}} }}
|{{{20|}}}<!-- #votes for the 2nd. round election -->
}} }}
|rate2= {{#ifexpr:{{{moment|}}}<3|0|<!-- no vote values for not started elections -->
{{#if:{{{18|}}}<!-- item2 exists -->
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#iferror:
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:100* {{formatnum:{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}|R}}
/ {{formatnum:{{if empty|{{{20|}}}|1}}|R}}
}}
|{{#expr:100* {{formatnum:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting = table |list = false |editicon=no|item={{{18|}}}
|whitelist0={{{4|}}} | rowformat= $1 |colformat1=raw}}|R}}
/ {{formatnum:{{#invoke:Wikidades| claim | property= P1697 |item={{{18|}}}
|formatting=raw|list= false |editicon=no}}|R}} round 2}}
}}
|0}}
}} }} }}
|rate_prev2={{#if:{{{19|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{19|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{20|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{19|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{19|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|seat_1={{#switch:{{{type_election|}}}
|proportional|double|limited-aggregate
={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false
|formatting=ucfirst |editicon=no
|item={{{1|}}} }}<!-- generic position name from subclasse, if exists -->
|{{GetLabelFix|{{{1|}}}|linked=yes}}
}}
|direct
={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }}
}}
|value_seat_1={{#ifexpr:{{{moment|}}}<3|<!-- no elections yet, no results
-->|{{#if:{{{14|}}}|{{{14|}}}<!-- seats comes from generic invoke -->
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} -->
|seat_2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election|}}}|double
|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table
|property=P541 |qualifier=P541/P279 |colformat1=ucfirst
|item={{{18|}}}|rowformat=$1}}<!-- generic position name from subclasse, if exists -->
|{{#invoke:Wikidades |claim |list=false |editicon=no
|property=P541 |formatting=ucfirst |item={{{18|}}}}}
}}
}} }}
|value_seat_2={{#if:{{{18|}}}
|{{#ifexpr:{{{moment|}}}< 3 |<!-- no elections yet, no results
-->|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#if:{{{3|}}}
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} }} -->
|moment={{{moment|}}}
}}<!-- end if threshold -->
}}<!-- end CASE=candidate -->
}}<!-- __________________________________________________________________________
Block to prepare REFERENDUM option information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|referendum<!--
-->|{{Infobox election/showblocks|result_referendum=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election ={{{type_election|}}}
|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{{yes_color|}}}<!-- article manual param. -->
|no_in_referendum ={{{not_color|}}} }}
|{{{4|}}}<!-- color from WD qualifier -->
|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{MyValue|IBelection|yes_color}}<!-- article manual param. -->
|no_in_referendum ={{MyValue|IBelection|not_color}} }}
}}
|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}<!--
-->|{{ucfirst:{{if empty|{{{2|}}}
|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }}
}} }}
|{{{2|}}}
}}
|value={{{3|}}}
|win={{#ifeq:{{{1|}}}|{{{6|}}}|y<!-- when P1346 {{{6|}}}, compare with current Q -->
|{{#iferror:{{#ifexpr:{{{3|}}} > {{{7|}}}|y}}<!-- when current #vots > vot of another option {{{7|}}} -->
}}
}}
|scope= {{{5|}}}
|moment={{{moment|}}} }}
}}<!-- end CASE=candidate --></includeonly>
btwkj23d6gchtfy1tt2g825pxo3w0sp
142942
142937
2026-06-26T11:34:02Z
آیات محراج
11062
/* */
142942
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with demography information
-->{{#ifeq:{{{case|}}}|election
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepdemo|ignore_errors=true}} |
* '''INPUT TO prepare (demography)'''
*item = {{{item|}}}
*item_prev = {{{item_prev|}}}
*round_text = {{{round_text|}}}
*case= {{{case|}}}
}}}}<!--
DEBUG. Called with case=referendum
-->{{#ifeq:{{{case|}}}|referendum
|{{#if:{{#invoke:string|match|s={{{debug|}}}|preprefe|ignore_errors=true}} |
* '''INPUT TO prepare (referendum)'''
* (1)= P726-raw option:{{{1|}}}
* (2)= P726-text option:{{{2|}}}
* (3)= P1111-votes received:{{{3|}}}
* (4)= P465-colour:{{{4|}}}
* (5)= /P1697 or /P1868-valid votes/total votes:{{{5|}}}
* (6)= /P1346-winner:{{{6|}}}
* (7)= /P8682-P8683-inverse to current:{{{7|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* yes_color={{{yes_color|}}}
* not_color={{{not_color|}}}
* case= {{{case|}}}
* item = {{{item|}}}
}}}}<!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepcand|ignore_errors=true}} |
* '''INPUT TO prepare (candidate)'''
* (1)=/P541-raw position contested:{{{1|}}}
* (2)=/P1697-votes valids:{{{2|}}}
* (3)=/P155-raw prev election:{{{3|}}} «» item_prev: {{{item_prev|}}}
* (4)=P726-raw property:{{{4|}}}
* (5)=P726/P31-instance:{{{5|}}}
* (6)=P18 or P726/P18-image person:{{{6|}}}
* (7)=P102 or P726/P102-party:{{{7|}}}
* (8)=P1813 or P726/P1813-shortname:{{{8|}}}
* (9)=P726/P154-logo:{{{9|}}}
* (10)=P210-lider:{{{10|}}}
* (11)=P465 or P726/P465 or P102/P465-colour:{{{11|}}}
* (12)=P1111-votes :{{{12|}}}
* (13)=P1114-quantity (of candidates in list):{{{13|}}}<!-- unused -->
* (14)=P1410-number of seats:{{{14|}}}
* (15)=P6149-vicepresident candidate
* (16)=data origin (P726/P991): {{{16|}}}
* (17)=P726-label_candidate:{{{17|}}}
* (18)=item 2n round:{{{18|}}}
* (19)=item_prev 2n round:{{{19|}}}
* (20)=/P1697-votes valids 2n round:{{{20|}}}
* item={{{item|}}}
* P460equivalent={{{P460equivalent|}}}
* type_election={{{type_election|}}}
* type_election1={{{type_election1|}}}
* type_election2={{{type_election2|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
* case = {{{case|}}}
* P5832 coalition = {{{coa|}}}
<hr>
}}}}{{#ifeq:{{{case|}}}|election<!--
________________________________________________________________________________
Block to prepare electoral demography information.
________________________________________________________________________________
-->|{{#ifexpr:{{{moment|}}} > 2<!-- Dia elecció o posterior -->
|{{#if:{{#invoke:Wikidades |claim | property= P1868 |value={{{votants|}}} }}
|{{#if:{{{round_text|}}}|'''{{{round_text|}}}'''<br/>}}
<table style={{{tablestyle|}}}><!-- Global results block on election: voter turnout, spoilt votes, blanks,.. -->
{{Infobox election/showblocks |result_election=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election={{{type_election|}}}
|barcolor= {{{barcolor|}}}
|electorate={{#invoke:Wikidades|claim |property=P1867 or P1831 |list=false
|editicon=no}}
|value={{#invoke:Wikidades |claim | property= P1868 |list=bestrank |editicon=no
|value={{{votants|}}} }}
|rate= {{if empty|{{{participacio|}}}
|{{#iferror:
{{#expr:100*{{#invoke:Wikidades| claim
|property=P1868|editicon=no |formatting=raw
|list=false|value={{{votants|}}} }}
/ {{#invoke:Wikidades| claim
|property=P1867 or P1831|editicon=no |formatting=raw
|list=false|value={{{cens|}}} }}
round 2}}
|0}}<!-- end Iferror -->
}}<!-- end If empty "participacio" -->
|rate_prev={{#if:{{{item_prev|}}}
|{{#if:{{#statements:P1868|from={{{item_prev|}}} }}<!-- #votes in prev elections -->
|{{#if:{{#statements:P1867|from={{{item_prev|}}} }}<!--#electors in prev.elec.-->
{{#statements:P1831|from={{{item_prev|}}} }}<!--or electorate -->
|{{#expr:100*{{#invoke:Wikidades | claim | property= P1868
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
/ {{#invoke:Wikidades | claim | property= P1867 or P1831
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
round 2}}
}} }} }}<!-- {{#invoke:Wikidades|editAtWikidata |property=P1868 }} -->
|valids={{#invoke:Wikidades| claim| property=P1697|editicon=no|list=false
|value={{{valids|}}} }}
|blancs={{#invoke:Wikidades| claim| property=P5045|editicon=no|list=false
|value={{{blancs|}}} }}
|nuls = {{#invoke:Wikidades| claim| property=P5044|editicon=no|list=false
|value={{{nuls|}}} }}
|moment={{{moment|}}}
|item={{{item|}}}
}}<!-- end call /showblocks -->
</table>}}<!-- end If ∃ P1688-votants -->
}}<!-- end If date post-electoral -->
}}<!-- end case=election --><!--
__________________________________________________________________________
Block to prepare candidate information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|}}} < 4|1}} <!-- before elections all candidates are listed
-->{{#ifeq:{{{16|}}}|P991|1}}<!-- when info comes from P991 instead P726, all "elected are shown"
-->{{#ifexpr:{{{moment|}}} > 3 and <!-- when elections are done, only show %votes >= threshold
-->(100 * {{if empty|{{{12|}}}|0}} / {{{2|}}} round 2) >= {{{threshold_list|}}}|1 }}<!-- % votes are => threshold (2% or 25% by default)
-->{{#if:{{{14|}}} | {{#ifexpr:{{{14|}}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got a seat (P1410) -->
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got votes instead seats, because election to a person not party
-->|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5
|{{if empty|{{{6|}}}<!-- leader/candidate image -->
|NOimage_person}}<!-- NO candidate image in personal elections-->
|{{if empty|{{{9|}}}<!-- logo party image -->
|NOimage_party}}<!-- NO logo party image -->
}}
|image_candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|1}} }}
}} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{Str split|{{{10|}}}|,|2}}
|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|2}} }}
}} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}<!-- name of "eligible": person -->
|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}<!-- name of party with short name-->
|{{GetLabelFix|{{{4|}}}|linked=yes}} }}
}}
|name2={{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{#if:{{{7|}}}<!-- party ? -->
|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}<!-- party of candidate with acronim-->
|{{GetLabelFix|{{{7|}}}|linked=yes}}<!-- party of candidate without acronim-->
}}
}}
|{{#if:{{{P210txt|}}}|{{{P210txt|}}}
|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }}<!-- name of team leader -->
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}
|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank
|property=P726 |whitelist0={{{4|}}} |qualifier=P5832
<!-- |qualifier2=P5832/P154 |rowsubformat2=[[file:$2|20x20px]] NO Logo-->
|editicon=no|rowformat=<!-- $2 No Logo -->$1 }}
}}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}
|{{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}
||#}}
}} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} +
{{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0
|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 <!-- avoid tag as "win" direct multi voting election (direct chamber deputies) -->
|{{#if:{{#invoke:Wikidades | claim | property= P991
|colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value=12345
|function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{3|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{2|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{3|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 or P991 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{3|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }}
}} }} }}
|value2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
}} }} }}
|scope2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}
|qualifier=P1410 |separator=+ |editicon=no}} }}
|{{{20|}}}<!-- #votes for the 2nd. round election -->
}} }}
|rate2= {{#ifexpr:{{{moment|}}}<3|0|<!-- no vote values for not started elections -->
{{#if:{{{18|}}}<!-- item2 exists -->
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#iferror:
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:100* {{formatnum:{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}|R}}
/ {{formatnum:{{if empty|{{{20|}}}|1}}|R}}
}}
|{{#expr:100* {{formatnum:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting = table |list = false |editicon=no|item={{{18|}}}
|whitelist0={{{4|}}} | rowformat= $1 |colformat1=raw}}|R}}
/ {{formatnum:{{#invoke:Wikidades| claim | property= P1697 |item={{{18|}}}
|formatting=raw|list= false |editicon=no}}|R}} round 2}}
}}
|0}}
}} }} }}
|rate_prev2={{#if:{{{19|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{19|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{20|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{19|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{19|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|seat_1={{#switch:{{{type_election|}}}
|proportional|double|limited-aggregate
={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false
|formatting=ucfirst |editicon=no
|item={{{1|}}} }}<!-- generic position name from subclasse, if exists -->
|{{GetLabelFix|{{{1|}}}|linked=yes}}
}}
|direct
={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }}
}}
|value_seat_1={{#ifexpr:{{{moment|}}}<3|<!-- no elections yet, no results
-->|{{#if:{{{14|}}}|{{{14|}}}<!-- seats comes from generic invoke -->
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} -->
|seat_2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election|}}}|double
|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table
|property=P541 |qualifier=P541/P279 |colformat1=ucfirst
|item={{{18|}}}|rowformat=$1}}<!-- generic position name from subclasse, if exists -->
|{{#invoke:Wikidades |claim |list=false |editicon=no
|property=P541 |formatting=ucfirst |item={{{18|}}}}}
}}
}} }}
|value_seat_2={{#if:{{{18|}}}
|{{#ifexpr:{{{moment|}}}< 3 |<!-- no elections yet, no results
-->|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#if:{{{3|}}}
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} }} -->
|moment={{{moment|}}}
}}<!-- end if threshold -->
}}<!-- end CASE=candidate -->
}}<!-- __________________________________________________________________________
Block to prepare REFERENDUM option information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|referendum<!--
-->|{{Infobox election/showblocks|result_referendum=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election ={{{type_election|}}}
|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{{yes_color|}}}<!-- article manual param. -->
|no_in_referendum ={{{not_color|}}} }}
|{{{4|}}}<!-- color from WD qualifier -->
|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{MyValue|IBelection|yes_color}}<!-- article manual param. -->
|no_in_referendum ={{MyValue|IBelection|not_color}} }}
}}
|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}<!--
-->|{{ucfirst:{{if empty|{{{2|}}}
|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }}
}} }}
|{{{2|}}}
}}
|value={{{3|}}}
|win={{#ifeq:{{{1|}}}|{{{6|}}}|y<!-- when P1346 {{{6|}}}, compare with current Q -->
|{{#iferror:{{#ifexpr:{{{3|}}} > {{{7|}}}|y}}<!-- when current #vots > vot of another option {{{7|}}} -->
}}
}}
|scope= {{{5|}}}
|moment={{{moment|}}} }}
}}<!-- end CASE=candidate --></includeonly>
l95e8bt0jdt7oiasnbhacdd3htpa83c
142943
142942
2026-06-26T11:34:50Z
آیات محراج
11062
[[Special:Contributions/آیات محراج|آیات محراج]] ([[User talk:آیات محراج|کَتھ]]) سٕنٛدِ طَرفہٕ کَرنہٕ آمٕژ [[Special:Diff/142942|142942]] تَبدیٖلی آی رَد کَرنہٕ
142943
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with demography information
-->{{#ifeq:{{{case|}}}|election
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepdemo|ignore_errors=true}} |
* '''INPUT TO prepare (demography)'''
*item = {{{item|}}}
*item_prev = {{{item_prev|}}}
*round_text = {{{round_text|}}}
*case= {{{case|}}}
}}}}<!--
DEBUG. Called with case=referendum
-->{{#ifeq:{{{case|}}}|referendum
|{{#if:{{#invoke:string|match|s={{{debug|}}}|preprefe|ignore_errors=true}} |
* '''INPUT TO prepare (referendum)'''
* (1)= P726-raw option:{{{1|}}}
* (2)= P726-text option:{{{2|}}}
* (3)= P1111-votes received:{{{3|}}}
* (4)= P465-colour:{{{4|}}}
* (5)= /P1697 or /P1868-valid votes/total votes:{{{5|}}}
* (6)= /P1346-winner:{{{6|}}}
* (7)= /P8682-P8683-inverse to current:{{{7|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* yes_color={{{yes_color|}}}
* not_color={{{not_color|}}}
* case= {{{case|}}}
* item = {{{item|}}}
}}}}<!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#invoke:string|match|s={{{debug|}}}|prepcand|ignore_errors=true}} |
* '''INPUT TO prepare (candidate)'''
* (1)=/P541-raw position contested:{{{1|}}}
* (2)=/P1697-votes valids:{{{2|}}}
* (3)=/P155-raw prev election:{{{3|}}} «» item_prev: {{{item_prev|}}}
* (4)=P726-raw property:{{{4|}}}
* (5)=P726/P31-instance:{{{5|}}}
* (6)=P18 or P726/P18-image person:{{{6|}}}
* (7)=P102 or P726/P102-party:{{{7|}}}
* (8)=P1813 or P726/P1813-shortname:{{{8|}}}
* (9)=P726/P154-logo:{{{9|}}}
* (10)=P210-lider:{{{10|}}}
* (11)=P465 or P726/P465 or P102/P465-colour:{{{11|}}}
* (12)=P1111-votes :{{{12|}}}
* (13)=P1114-quantity (of candidates in list):{{{13|}}}<!-- unused -->
* (14)=P1410-number of seats:{{{14|}}}
* (15)=P6149-vicepresident candidate
* (16)=data origin (P726/P991): {{{16|}}}
* (17)=P726-label_candidate:{{{17|}}}
* (18)=item 2n round:{{{18|}}}
* (19)=item_prev 2n round:{{{19|}}}
* (20)=/P1697-votes valids 2n round:{{{20|}}}
* item={{{item|}}}
* P460equivalent={{{P460equivalent|}}}
* type_election={{{type_election|}}}
* type_election1={{{type_election1|}}}
* type_election2={{{type_election2|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
* case = {{{case|}}}
* P5832 coalition = {{{coa|}}}
<hr>
}}}}{{#ifeq:{{{case|}}}|election<!--
________________________________________________________________________________
Block to prepare electoral demography information.
________________________________________________________________________________
-->|{{#ifexpr:{{{moment|}}} > 2<!-- Dia elecció o posterior -->
|{{#if:{{#invoke:Wikidades |claim | property= P1868 |value={{{votants|}}} }}
|{{#if:{{{round_text|}}}|'''{{{round_text|}}}'''<br/>}}
<table style={{{tablestyle|}}}><!-- Global results block on election: voter turnout, spoilt votes, blanks,.. -->
{{Infobox election/showblocks |result_election=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election={{{type_election|}}}
|barcolor= {{{barcolor|}}}
|electorate={{#invoke:Wikidades|claim |property=P1867 or P1831 |list=false
|editicon=no}}
|value={{#invoke:Wikidades |claim | property= P1868 |list=bestrank |editicon=no
|value={{{votants|}}} }}
|rate= {{if empty|{{{participacio|}}}
|{{#iferror:
{{#expr:100*{{#invoke:Wikidades| claim
|property=P1868|editicon=no |formatting=raw
|list=false|value={{{votants|}}} }}
/ {{#invoke:Wikidades| claim
|property=P1867 or P1831|editicon=no |formatting=raw
|list=false|value={{{cens|}}} }}
round 2}}
|0}}<!-- end Iferror -->
}}<!-- end If empty "participacio" -->
|rate_prev={{#if:{{{item_prev|}}}
|{{#if:{{#statements:P1868|from={{{item_prev|}}} }}<!-- #votes in prev elections -->
|{{#if:{{#statements:P1867|from={{{item_prev|}}} }}<!--#electors in prev.elec.-->
{{#statements:P1831|from={{{item_prev|}}} }}<!--or electorate -->
|{{#expr:100*{{#invoke:Wikidades | claim | property= P1868
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
/ {{#invoke:Wikidades | claim | property= P1867 or P1831
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
round 2}}
}} }} }}<!-- {{#invoke:Wikidades|editAtWikidata |property=P1868 }} -->
|valids={{#invoke:Wikidades| claim| property=P1697|editicon=no|list=false
|value={{{valids|}}} }}
|blancs={{#invoke:Wikidades| claim| property=P5045|editicon=no|list=false
|value={{{blancs|}}} }}
|nuls = {{#invoke:Wikidades| claim| property=P5044|editicon=no|list=false
|value={{{nuls|}}} }}
|moment={{{moment|}}}
|item={{{item|}}}
}}<!-- end call /showblocks -->
</table>}}<!-- end If ∃ P1688-votants -->
}}<!-- end If date post-electoral -->
}}<!-- end case=election --><!--
__________________________________________________________________________
Block to prepare candidate information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|}}} < 4|1}} <!-- before elections all candidates are listed
-->{{#ifeq:{{{16|}}}|P991|1}}<!-- when info comes from P991 instead P726, all "elected are shown"
-->{{#ifexpr:{{{moment|}}} > 3 and <!-- when elections are done, only show %votes >= threshold
-->(100 * {{if empty|{{{12|}}}|0}} / {{{2|}}} round 2) >= {{{threshold_list|}}}|1 }}<!-- % votes are => threshold (2% or 25% by default)
-->{{#if:{{{14|}}} | {{#ifexpr:{{{14|}}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got a seat (P1410) -->
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got votes instead seats, because election to a person not party
-->|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5
|{{if empty|{{{6|}}}<!-- leader/candidate image -->
|NOimage_person}}<!-- NO candidate image in personal elections-->
|{{if empty|{{{9|}}}<!-- logo party image -->
|NOimage_party}}<!-- NO logo party image -->
}}
|image_candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|1}} }}
}} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{Str split|{{{10|}}}|,|2}}
|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|2}} }}
}} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}<!-- name of "eligible": person -->
|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}<!-- name of party with short name-->
|{{GetLabelFix|{{{4|}}}|linked=yes}} }}
}}
|name2={{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{#if:{{{7|}}}<!-- party ? -->
|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}<!-- party of candidate with acronim-->
|{{GetLabelFix|{{{7|}}}|linked=yes}}<!-- party of candidate without acronim-->
}}
}}
|{{#if:{{{P210txt|}}}|{{{P210txt|}}}
|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }}<!-- name of team leader -->
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}
|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank
|property=P726 |whitelist0={{{4|}}} |qualifier=P5832
<!-- |qualifier2=P5832/P154 |rowsubformat2=[[file:$2|20x20px]] NO Logo-->
|editicon=no|rowformat=<!-- $2 No Logo -->$1 }}
}}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}
|{{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}
||#}}
}} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} +
{{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0
|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 <!-- avoid tag as "win" direct multi voting election (direct chamber deputies) -->
|{{#if:{{#invoke:Wikidades | claim | property= P991
|colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value={{#ifexpr:{{{moment|}}}<3|<!-- no vote values for not started elections
-->|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{{14|}}}<!-- # of seats -->
|{{#if:{{{12|}}} | {{{12|}}}<!-- # of votes -->
|{{#iferror:
{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|colformat1=raw
| formatting = table |list = false |editicon=no |whitelist0={{{4|}}}
| rowformat= $1 |separator=}}<!-- get #votes from P726 for elected party/person-->
}} }}
}} }}
|scope={{{{2|}}}<!-- # of total seats for aggregate, #votes for the election -->
|rate= {{#ifexpr:{{{moment|}}}<3|0|<!-- no vote values for not started elections -->
{{#iferror:
{{#expr:100* {{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{formatnum:{{if empty|{{{14|}}}|0}}|R}}|{{formatnum:{{if empty|{{{12|}}}|0}}|R}} }}
/ {{formatnum:{{if empty|{{{2|}}}|1}}|R}} round 2}}
|0}}
}}
|rate_prev={{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{3|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{2|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{3|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 or P991 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{3|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }}
}} }} }}
|value2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
}} }} }}
|scope2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}
|qualifier=P1410 |separator=+ |editicon=no}} }}
|{{{20|}}}<!-- #votes for the 2nd. round election -->
}} }}
|rate2= {{#ifexpr:{{{moment|}}}<3|0|<!-- no vote values for not started elections -->
{{#if:{{{18|}}}<!-- item2 exists -->
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#iferror:
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:100* {{formatnum:{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}|R}}
/ {{formatnum:{{if empty|{{{20|}}}|1}}|R}}
}}
|{{#expr:100* {{formatnum:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting = table |list = false |editicon=no|item={{{18|}}}
|whitelist0={{{4|}}} | rowformat= $1 |colformat1=raw}}|R}}
/ {{formatnum:{{#invoke:Wikidades| claim | property= P1697 |item={{{18|}}}
|formatting=raw|list= false |editicon=no}}|R}} round 2}}
}}
|0}}
}} }} }}
|rate_prev2={{#if:{{{19|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{19|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{20|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{19|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{19|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|seat_1={{#switch:{{{type_election|}}}
|proportional|double|limited-aggregate
={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false
|formatting=ucfirst |editicon=no
|item={{{1|}}} }}<!-- generic position name from subclasse, if exists -->
|{{GetLabelFix|{{{1|}}}|linked=yes}}
}}
|direct
={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }}
}}
|value_seat_1={{#ifexpr:{{{moment|}}}<3|<!-- no elections yet, no results
-->|{{#if:{{{14|}}}|{{{14|}}}<!-- seats comes from generic invoke -->
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} -->
|seat_2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election|}}}|double
|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table
|property=P541 |qualifier=P541/P279 |colformat1=ucfirst
|item={{{18|}}}|rowformat=$1}}<!-- generic position name from subclasse, if exists -->
|{{#invoke:Wikidades |claim |list=false |editicon=no
|property=P541 |formatting=ucfirst |item={{{18|}}}}}
}}
}} }}
|value_seat_2={{#if:{{{18|}}}
|{{#ifexpr:{{{moment|}}}< 3 |<!-- no elections yet, no results
-->|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#if:{{{3|}}}
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} }} -->
|moment={{{moment|}}}
}}<!-- end if threshold -->
}}<!-- end CASE=candidate -->
}}<!-- __________________________________________________________________________
Block to prepare REFERENDUM option information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|referendum<!--
-->|{{Infobox election/showblocks|result_referendum=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election ={{{type_election|}}}
|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{{yes_color|}}}<!-- article manual param. -->
|no_in_referendum ={{{not_color|}}} }}
|{{{4|}}}<!-- color from WD qualifier -->
|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{MyValue|IBelection|yes_color}}<!-- article manual param. -->
|no_in_referendum ={{MyValue|IBelection|not_color}} }}
}}
|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}<!--
-->|{{ucfirst:{{if empty|{{{2|}}}
|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }}
}} }}
|{{{2|}}}
}}
|value={{{3|}}}
|win={{#ifeq:{{{1|}}}|{{{6|}}}|y<!-- when P1346 {{{6|}}}, compare with current Q -->
|{{#iferror:{{#ifexpr:{{{3|}}} > {{{7|}}}|y}}<!-- when current #vots > vot of another option {{{7|}}} -->
}}
}}
|scope= {{{5|}}}
|moment={{{moment|}}} }}
}}<!-- end CASE=candidate --></includeonly>
btwkj23d6gchtfy1tt2g825pxo3w0sp
142947
142943
2026-06-26T11:56:05Z
آیات محراج
11062
/* */
142947
wikitext
text/x-wiki
<!-- Version cawiki- 2023.05.25 --><noinclude>
{{documentation|{{Infobox election/doctech/{{MediaWiki:Templatedata-doc-subpage}}}} }}
</noinclude><includeonly><!--
DEBUG. Called with demography information
-->{{#ifeq:{{{case|}}}|election
|{{#if:{{#invoke:string1|match|s={{{debug|}}}|prepdemo|ignore_errors=true}} |
* '''INPUT TO prepare (demography)'''
*item = {{{item|}}}
*item_prev = {{{item_prev|}}}
*round_text = {{{round_text|}}}
*case= {{{case|}}}
}}}}<!--
DEBUG. Called with case=referendum
-->{{#ifeq:{{{case|}}}|referendum
|{{#if:{{#invoke:string1|match|s={{{debug|}}}|preprefe|ignore_errors=true}} |
* '''INPUT TO prepare (referendum)'''
* (1)= P726-raw option:{{{1|}}}
* (2)= P726-text option:{{{2|}}}
* (3)= P1111-votes received:{{{3|}}}
* (4)= P465-colour:{{{4|}}}
* (5)= /P1697 or /P1868-valid votes/total votes:{{{5|}}}
* (6)= /P1346-winner:{{{6|}}}
* (7)= /P8682-P8683-inverse to current:{{{7|}}}
* type_election={{{type_election|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* yes_color={{{yes_color|}}}
* not_color={{{not_color|}}}
* case= {{{case|}}}
* item = {{{item|}}}
}}}}<!--
DEBUG. Called with candidate information
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#invoke:string1|match|s={{{debug|}}}|prepcand|ignore_errors=true}} |
* '''INPUT TO prepare (candidate)'''
* (1)=/P541-raw position contested:{{{1|}}}
* (2)=/P1697-votes valids:{{{2|}}}
* (3)=/P155-raw prev election:{{{3|}}} «» item_prev: {{{item_prev|}}}
* (4)=P726-raw property:{{{4|}}}
* (5)=P726/P31-instance:{{{5|}}}
* (6)=P18 or P726/P18-image person:{{{6|}}}
* (7)=P102 or P726/P102-party:{{{7|}}}
* (8)=P1813 or P726/P1813-shortname:{{{8|}}}
* (9)=P726/P154-logo:{{{9|}}}
* (10)=P210-lider:{{{10|}}}
* (11)=P465 or P726/P465 or P102/P465-colour:{{{11|}}}
* (12)=P1111-votes :{{{12|}}}
* (13)=P1114-quantity (of candidates in list):{{{13|}}}<!-- unused -->
* (14)=P1410-number of seats:{{{14|}}}
* (15)=P6149-vicepresident candidate
* (16)=data origin (P726/P991): {{{16|}}}
* (17)=P726-label_candidate:{{{17|}}}
* (18)=item 2n round:{{{18|}}}
* (19)=item_prev 2n round:{{{19|}}}
* (20)=/P1697-votes valids 2n round:{{{20|}}}
* item={{{item|}}}
* P460equivalent={{{P460equivalent|}}}
* type_election={{{type_election|}}}
* type_election1={{{type_election1|}}}
* type_election2={{{type_election2|}}}
* moment={{{moment|}}}
* threshold_list={{{threshold_list|}}}
* id_position1 ={{{id_position1|}}}
* id_position2 ={{{id_position2|}}}
* roundcolor_1={{{roundcolor_1|}}}
* roundcolor_2={{{roundcolor_2|}}}
* case = {{{case|}}}
* P5832 coalition = {{{coa|}}}
<hr>
}}}}{{#ifeq:{{{case|}}}|election<!--
________________________________________________________________________________
Block to prepare electoral demography information.
________________________________________________________________________________
-->|{{#ifexpr:{{{moment|}}} > 2<!-- Dia elecció o posterior -->
|{{#if:{{#invoke:Wikidades |claim | property= P1868 |value={{{votants|}}} }}
|{{#if:{{{round_text|}}}|'''{{{round_text|}}}'''<br/>}}
<table style={{{tablestyle|}}}><!-- Global results block on election: voter turnout, spoilt votes, blanks,.. -->
{{Infobox election/showblocks |result_election=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election={{{type_election|}}}
|barcolor= {{{barcolor|}}}
|electorate={{#invoke:Wikidades|claim |property=P1867 or P1831 |list=false
|editicon=no}}
|value={{#invoke:Wikidades |claim | property= P1868 |list=bestrank |editicon=no
|value={{{votants|}}} }}
|rate= {{if empty|{{{participacio|}}}
|{{#iferror:
{{#expr:100*{{#invoke:Wikidades| claim
|property=P1868|editicon=no |formatting=raw
|list=false|value={{{votants|}}} }}
/ {{#invoke:Wikidades| claim
|property=P1867 or P1831|editicon=no |formatting=raw
|list=false|value={{{cens|}}} }}
round 2}}
|0}}<!-- end Iferror -->
}}<!-- end If empty "participacio" -->
|rate_prev={{#if:{{{item_prev|}}}
|{{#if:{{#statements:P1868|from={{{item_prev|}}} }}<!-- #votes in prev elections -->
|{{#if:{{#statements:P1867|from={{{item_prev|}}} }}<!--#electors in prev.elec.-->
{{#statements:P1831|from={{{item_prev|}}} }}<!--or electorate -->
|{{#expr:100*{{#invoke:Wikidades | claim | property= P1868
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
/ {{#invoke:Wikidades | claim | property= P1867 or P1831
|list = false |editicon=no |formatting=raw
|item={{{item_prev|}}} }}
round 2}}
}} }} }}<!-- {{#invoke:Wikidades|editAtWikidata |property=P1868 }} -->
|valids={{#invoke:Wikidades| claim| property=P1697|editicon=no|list=false
|value={{{valids|}}} }}
|blancs={{#invoke:Wikidades| claim| property=P5045|editicon=no|list=false
|value={{{blancs|}}} }}
|nuls = {{#invoke:Wikidades| claim| property=P5044|editicon=no|list=false
|value={{{nuls|}}} }}
|moment={{{moment|}}}
|item={{{item|}}}
}}<!-- end call /showblocks -->
</table>}}<!-- end If ∃ P1688-votants -->
}}<!-- end If date post-electoral -->
}}<!-- end case=election --><!--
__________________________________________________________________________
Block to prepare candidate information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|candidate
|{{#if:{{#ifexpr:{{{moment|}}} < 4|1}} <!-- before elections all candidates are listed
-->{{#ifeq:{{{16|}}}|P991|1}}<!-- when info comes from P991 instead P726, all "elected are shown"
-->{{#ifexpr:{{{moment|}}} > 3 and <!-- when elections are done, only show %votes >= threshold
-->(100 * {{if empty|{{{12|}}}|0}} / {{{2|}}} round 2) >= {{{threshold_list|}}}|1 }}<!-- % votes are => threshold (2% or 25% by default)
-->{{#if:{{{14|}}} | {{#ifexpr:{{{14|}}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got seat in current item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}} > 0|1}}}}
{{#if:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991 |item={{{18|}}}<!-- or got seat in 2n round item ? -->
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got a seat (P1410) -->
{{#if:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#ifexpr:{{#invoke:Wikidades | claim | property= P991<!-- got votes in current item ? -->
|qualifier= P1111 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}>0|1}}}}<!-- when got votes instead seats, because election to a person not party
-->|{{Infobox election/showblocks|result_candidate=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|referendum={{#invoke:Wikidades |claim |property=P31 |editicon=no|item={{{item|}}}
|formatting=table |whitelist0={{MyValue|IBelection|is_referendum}} |rowformat=$0}}
|type_election ={{{type_election|}}}
|type_election1={{{type_election1|}}}
|type_election2={{{type_election2|}}}
|item_candidate={{{4|}}}
|party_equivalent={{{P460equivalent|}}}
|image= {{#ifeq:{{{5|}}}|Q5
|{{if empty|{{{6|}}}<!-- leader/candidate image -->
|NOimage_person}}<!-- NO candidate image in personal elections-->
|{{if empty|{{{9|}}}<!-- logo party image -->
|NOimage_party}}<!-- NO logo party image -->
}}
|image_candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{{10|}}}|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|1}} }}
}} }}
|image_co-candidate= {{#ifeq:{{{5|}}}|Q5|<!-- when candidate is a person, no second image
-->|{{#if:{{Str split|{{{10|}}}|,|2}}
|{{#invoke:Wikidades | claim | property= P18 |list = false
|editicon=no |item={{Str split|{{{10|}}}|,|2}} }}
}} }}
|name1={{#ifeq:{{{5|}}}|Q5|{{GetLabelFix|{{{4|}}}|linked=yes}}<!-- name of "eligible": person -->
|{{#if:{{{8|}}}|{{#invoke:Wikidades|getLabel|{{{4|}}}|linked=yes|label={{{8|}}}}}<!-- name of party with short name-->
|{{GetLabelFix|{{{4|}}}|linked=yes}} }}
}}
|name2={{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{#if:{{{7|}}}<!-- party ? -->
|{{#if:{{{8|}}}{{#invoke:Wikidades|getLabel|{{{7|}}}|linked=yes|label={{{8|}}}}}<!-- party of candidate with acronim-->
|{{GetLabelFix|{{{7|}}}|linked=yes}}<!-- party of candidate without acronim-->
}}
}}
|{{#if:{{{P210txt|}}}|{{{P210txt|}}}
|{{GetLabelFix|{{{10|}}}|linked=yes}} }} }}<!-- name of team leader -->
|name_vice_p ={{#if:{{{15|}}}|{{GetLabelFix|P6149|linked=yes}}: {{GetLabelFix|{{{15|}}}|linked=yes}} }}
|coa ={{#if:{{{coa|}}}
|{{#invoke:Wikidades|claim|formatting=table |separator=<br>| list=bestrank
|property=P726 |whitelist0={{{4|}}} |qualifier=P5832
<!-- |qualifier2=P5832/P154 |rowsubformat2=[[file:$2|20x20px]] NO Logo-->
|editicon=no|rowformat=<!-- $2 No Logo -->$1 }}
}}
|barcolor={{#if:{{{11|}}}|#{{{11|}}}
|{{#ifeq:{{{5|}}}|Q5<!-- when candidate is a person -->
|{{if then show|{{#invoke:Wikidades | claim | property= P465 |list = false |editicon=no |item={{{7|}}} }}
||#}}
}} }}
|win = {{#ifexpr: {{#ifeq:{{{type_election|}}}|direct|1|0}} +
{{#ifeq:{{{type_election1|}}}|direct|1|0}} > 0
|{{#ifexpr:{{#invoke:Wikidades|numStatements|P991}} = 1 <!-- avoid tag as "win" direct multi voting election (direct chamber deputies) -->
|{{#if:{{#invoke:Wikidades | claim | property= P991
|colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|Y}} }} }}
|roundcolor_1={{{roundcolor_1|}}}
|roundcolor_2={{{roundcolor_2|}}}
|value={{#ifexpr:{{{moment|}}}<3|<!-- no vote values for not started elections
-->|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{{14|}}}<!-- # of seats -->
|{{#if:{{{12|}}} | {{{12|}}}<!-- # of votes -->
|{{#iferror:
{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111|colformat1=raw
| formatting = table |list = false |editicon=no |whitelist0={{{4|}}}
| rowformat= $1 |separator=}}<!-- get #votes from P726 for elected party/person-->
}} }}
}} }}
|scope={{{{2|}}}<!-- # of total seats for aggregate, #votes for the election -->
|rate= {{#ifexpr:{{{moment|}}}<3|0|<!-- no vote values for not started elections -->
{{#iferror:
{{#expr:100* {{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{formatnum:{{if empty|{{{14|}}}|0}}|R}}|{{formatnum:{{if empty|{{{12|}}}|0}}|R}} }}
/ {{formatnum:{{if empty|{{{2|}}}|1}}|R}} round 2}}
|0}}
}}
|rate_prev={{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election1|}}} |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{2|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election1|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{3|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{2|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{3|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 or P991 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{3|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|round ={{#switch:{{{type_election|}}}|two_rounds=1|double={{MyValue|IBelection|id_position1}} }}
|round2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#if:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
|{{#ifeq:{{{type_election|}}}|two_rounds|2|{{MyValue|IBelection|id_position2}} }}
}} }} }}
|value2={{#if:{{{18|}}}
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
|{{#invoke:Wikidades| claim | property= P726 |qualifier=P1111 |colformat1=raw
|formatting= table |list=false |editicon=no |separator=
|item={{{18|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
}} }} }}
|scope2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:{{#invoke:Wikidades |claim |list=bestrank |property=P991 |item={{{18|}}}
|qualifier=P1410 |separator=+ |editicon=no}} }}
|{{{20|}}}<!-- #votes for the 2nd. round election -->
}} }}
|rate2= {{#ifexpr:{{{moment|}}}<3|0|<!-- no vote values for not started elections -->
{{#if:{{{18|}}}<!-- item2 exists -->
|{{#switch:{{{type_election|}}}|two_rounds|double=
{{#iferror:
{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#expr:100* {{formatnum:{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}|R}}
/ {{formatnum:{{if empty|{{{20|}}}|1}}|R}}
}}
|{{#expr:100* {{formatnum:{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|formatting = table |list = false |editicon=no|item={{{18|}}}
|whitelist0={{{4|}}} | rowformat= $1 |colformat1=raw}}|R}}
/ {{formatnum:{{#invoke:Wikidades| claim | property= P1697 |item={{{18|}}}
|formatting=raw|list= false |editicon=no}}|R}} round 2}}
}}
|0}}
}} }} }}
|rate_prev2={{#if:{{{19|}}}
| {{Infobox_election/prepare_prev_results
|function =rate |type_election={{{type_election2|}}} |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}} |valid_votes={{{20|}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#ifeq:{{{type_election2|}}}|limited-aggregate
|{{#iferror:{{#expr:100*{{#invoke:Wikidades | claim | property= P991
|qualifier=P1410 |colformat1=raw
|formatting= table |list=false
|editicon=no |item={{{19|}}}
|whitelist0={{{4|}}} | rowformat= $1 }}
/ {{{20|}}} round 2}}|0}}
|{{#iferror:{{#if:{{#statements:P1697|from={{{19|}}}}}
|{{#expr:100*{{#invoke:Wikidades | claim | property= P726 |qualifier=P1111
|colformat1=raw |formatting= table |list=false
|editicon=no |separator=
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1 }}
/{{#invoke:Wikidades | claim | property= P1697 |item={{{19|}}}
|list= false |formatting=raw|editicon=no}}
round 2}}
}} }} }} }} -->
|seat_1={{#switch:{{{type_election|}}}
|proportional|double|limited-aggregate
={{if empty|{{#invoke:Wikidades| claim | property= P279 |list = false
|formatting=ucfirst |editicon=no
|item={{{1|}}} }}<!-- generic position name from subclasse, if exists -->
|{{GetLabelFix|{{{1|}}}|linked=yes}}
}}
|direct
={{#if:{{{14|}}}|{{GetLabelFix|Q97696406|lang={{{lang|}}}}} }}
}}
|value_seat_1={{#ifexpr:{{{moment|}}}<3|<!-- no elections yet, no results
-->|{{#if:{{{14|}}}|{{{14|}}}<!-- seats comes from generic invoke -->
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_1={{#if:{{{3|}}} | {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{3|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{3|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }}
<!-- {{#if:{{{3|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{3|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} -->
|seat_2={{#if:{{{18|}}}
|{{#ifeq:{{{type_election|}}}|double
|{{if empty|{{#invoke:Wikidades |claim |list=false |editicon=no |formatting=table
|property=P541 |qualifier=P541/P279 |colformat1=ucfirst
|item={{{18|}}}|rowformat=$1}}<!-- generic position name from subclasse, if exists -->
|{{#invoke:Wikidades |claim |list=false |editicon=no
|property=P541 |formatting=ucfirst |item={{{18|}}}}}
}}
}} }}
|value_seat_2={{#if:{{{18|}}}
|{{#ifexpr:{{{moment|}}}< 3 |<!-- no elections yet, no results
-->|{{#invoke:Wikidades| claim | property= P991 |item={{{18|}}}
|qualifier= P1410 |colformat1=raw|separator=
|formatting = table |list = false |editicon=no
|whitelist0={{{4|}}} | rowformat=$1}}
}} }}
|value_prev_seat_2={{#if:{{{19|}}} |{{#if:{{{3|}}}
| {{Infobox_election/prepare_prev_results
|function =seat |type_election= |item_ant={{{19|}}}
|candidate={{{4|}}} | P460equivalent={{{P460equivalent}}}
|candidate_look={{#if:{{{P460equivalent|}}}
|{{If then show|{{#invoke:Wikidades | claim | property= P726 or P991
|qualifier=P460 |colformat0=raw |colformat1=raw
|formatting= table |list=false |item={{{19|}}}
|editicon=no |separator= |rowformat= $0
|whitelist0={{{4|}}} / {{{P460equivalent|}}}
|whitelist1={{{4|}}} / {{{P460equivalent|}}} }}
|{{{4|}}}}}
|{{{4|}}} }}
}} }} }}
<!-- {{#if:{{{19|}}} OLD code replaced by sub-template to handle the equivalent party in all "previous calculation
|{{#if:{{{3|}}}
|{{#invoke:Wikidades| claim | property= P991
|qualifier= P1410 |colformat1=raw
|formatting = table |list = false |editicon=no
|item={{{19|}}} |whitelist0={{{4|}}} | rowformat= $1
}}
}} }} -->
|moment={{{moment|}}}
}}<!-- end if threshold -->
}}<!-- end CASE=candidate -->
}}<!-- __________________________________________________________________________
Block to prepare REFERENDUM option information
_______________________________________________________________________________
-->{{#ifeq:{{{case|}}}|referendum<!--
-->|{{Infobox election/showblocks|result_referendum=yes |lang={{{lang|}}}
|debug = {{{debug|}}}
|type_election ={{{type_election|}}}
|barcolor={{if empty|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{{yes_color|}}}<!-- article manual param. -->
|no_in_referendum ={{{not_color|}}} }}
|{{{4|}}}<!-- color from WD qualifier -->
|{{#switch:{{inGroup|IBelection_yesorno|item={{{1|}}}}}
|yes_in_referendum={{MyValue|IBelection|yes_color}}<!-- article manual param. -->
|no_in_referendum ={{MyValue|IBelection|not_color}} }}
}}
|referendum_text={{#if:{{inGroup|IBelection_yesorno|item={{{1|}}} }}<!--
-->|{{ucfirst:{{if empty|{{{2|}}}
|{{GetLabelFix|{{{1|}}}|lang={{{lang|}}} }}
}} }}
|{{{2|}}}
}}
|value={{{3|}}}
|win={{#ifeq:{{{1|}}}|{{{6|}}}|y<!-- when P1346 {{{6|}}}, compare with current Q -->
|{{#iferror:{{#ifexpr:{{{3|}}} > {{{7|}}}|y}}<!-- when current #vots > vot of another option {{{7|}}} -->
}}
}}
|scope= {{{5|}}}
|moment={{{moment|}}} }}
}}<!-- end CASE=candidate --></includeonly>
dz144njgeoen2k7omx9mpuad0796j7f
فرما:Infobox election/showblocks
10
30844
142938
142125
2026-06-26T10:54:20Z
آیات محراج
11062
/* */
142938
wikitext
text/x-wiki
<includeonly><!--
-->{{#if:{{#invoke:string|match|s={{{debug|}}}|showblok|ignore_errors=true}}|{{#if:{{{item_candidate|}}}|{{#if:{{#invoke:string|match|s={{{debug|}}}|{{{item_candidate|}}}|ignore_errors=true}}|
* '''INPUT TO showblocks''' ...
}}}}}}<!--
-->{{#if:{{{result_candidate|}}}<!--
-->|<tr><td colspan="7" class="topbarcandidate notheme" style="background:{{{barcolor|}}};"></td></tr>
<tr style="height:0.01em;"><td style="width:45px;"></td><td style="width:0.8em;"></td><td></td><td style="width:1.5em;"></td><td style="width:1.5em;"></td><td style="width:0.5em;"></td><td style="width:1.8em;"></td></tr>
<tr><td rowspan={{#expr: 3 + {{#if:{{{value_seat_2|}}}|{{#if:{{{value_seat_1|}}}|2|1}}|0}} + {{#if:{{{name_vice_p|}}}|1|0}} + {{#if:{{{coa|}}}|1|0}} + {{#if:{{{party_equivalent|}}}|1|0}}}}>
{{#if:{{{referendum|}}}||{{#if:{{{image_candidate|}}}|{{#if:{{{image_co-candidate|}}}|{{switcher2|image1={{{image_candidate|}}} |image2={{{image_co-candidate|}}} |image3={{#ifeq:{{{image|}}}|NOimage_party|Transparent flag waving on Infobox grey background.svg|{{{image|}}} }}}}|{{switcher2|image1={{{image_candidate|}}}|image2={{#ifeq:{{{image|}}}|NOimage_party|Transparent flag waving on Infobox grey background.svg|{{{image|}}} }}}}}}|{{#if:{{{image|}}}|{{#ifeq:{{{image|}}}|NOimage_party|<div style="background:{{#if:{{{barcolor|}}}|{{{barcolor|}}}|#888}};text-align:center">? ? ?</div>|{{#ifeq:{{{image|}}}|NOimage_person|[[file:{{MyValue|IBelection|no_img_candidate}}|45px|class=skin-invert]]|[[file:{{{image|}}}|45px ]]}}}}|[[file:{{MyValue|IBelection|no_img_candidate}}|45px|class=skin-invert]] }} }} }}</td>
<td colspan={{#if:{{{win|}}}|5|6}}>{{#if:{{{name1|}}}|'''{{{name1|}}}'''{{#if:{{{name2|}}}| — {{{name2|}}}}}|{{#if:{{{name2|}}}|'''{{{name2|}}}'''}}}}</td>{{#if:{{{win|}}}|<td>[[file:{{if empty|{{MyValue|IBelection|img_winner}}|Gnome-bookmark-new2.svg}}|25px|class=skin-invert|link=|{{GetLabelFix|P991|lang={{{lang|}}}}}]] </td>}}</tr>
{{#if:{{{name_vice_p|}}}|<tr><td colspan="6">{{{name_vice_p|}}}</td></tr>}}{{#if:{{{coa|}}}|<tr><td></td><td colspan="5">{{Collapsible list|title={{label|Q6138528}} |titlestyle=font-size:90%;font-style:italic; |liststyle=font-size:85%; |1={{{coa|}}}}}</td></tr>}}{{#if:{{{party_equivalent|}}}|<tr><td></td><td colspan="5"><small>{{MyValue|IBelection|text_party_equivalent}} '''''{{GetLabelFix|{{{party_equivalent|}}}|lang={{{lang|}}}|linked=yes}}'''''</small></td></tr>}}
<tr><td style="padding:1px;"> {{#if:{{{round|}}}|<span style="background:{{{roundcolor_1|}}};color:#ffffff;padding:3.5px 3.5px 3.5px 3.5px;margin:0px 0px 0px 0px;border-radius:100px;text-align:center;font-size:0.8em;">'''{{{round|}}}'''</span>}}</td>
<td colspan="3">{{Composition bar compact|{{formatnum:{{if empty|{{{value|}}}|0}}|R}}|{{formatnum:{{if empty|{{{scope|}}}|1}}|R}}|{{if empty|{{MyValue|IBelection|basicbarcolor}}|#C0C0C0}}|background-color=#FFFFFF|width=145| nodivisor=y |per=1|parenthesis=y|valuestyle=font-size:85%;|perstyle=font-size:90%;|lang={{{lang|}}}|round=2}}</td>
{{#if:{{{rate_prev|}}}{{{rate|}}}|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{rate|0}}}|pattern=%b[]|replace=|plain=false}}|0}})>({{if empty|{{#invoke:String|replace|s={{{rate_prev|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;">[[File:Green Arrow Up.svg|8px|link=|{{GetLabelFix|Q1049848|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:75%;padding-right:0px;">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{rate|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{rate_prev|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</td>|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{rate|0}}}|pattern=%b[]|replace=|plain=false}}|0}})<({{if empty|{{#invoke:String|replace|s={{{rate_prev|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;">[[File:Red Arrow Down.svg|8px|link=|{{GetLabelFix|Q1049848|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:75%;padding-right:0px;"><span style="color:#d73333">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{rate_prev|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{rate|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</span></td>|<td style="text-align:center;">[[File:Equal blue arrow.png|8px|link=]]</td>}} }} }}</tr>
{{#if:{{{round2|}}}|<tr><td style="padding:1px;"><span style="background:{{{roundcolor_2|}}};color:#ffffff;padding:3.5px 3.5px 3.5px 3.5px;margin:0px 0px 0px 0px;border-radius:100px;text-align:center;font-size:0.8em;">'''{{{round2|}}}'''</span></td>
<td colspan="3">{{Composition bar compact|{{formatnum:{{if empty|{{{value2|}}}|0}}|R}}|{{formatnum:{{if empty|{{{scope2|}}}|1}}|R}}|{{if empty|{{MyValue|IBelection|basicbarcolor}}|#C0C0C0}}|background-color=#FFFFFF|width=145| nodivisor=y |per=1|parenthesis=y|valuestyle=font-size:85%;|perstyle=font-size:90%;|lang={{{lang|}}}|round=2}}</td>
{{#if:{{{rate_prev2|}}}{{{rate2|}}}|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{rate2|0}}}|pattern=%b[]|replace=|plain=false}}|0}})>({{if empty|{{#invoke:String|replace|s={{{rate_prev2|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;">[[File:Green Arrow Up.svg|8px|link=|{{GetLabelFix|Q1049848|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:75%;padding-right:0px;">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{rate2|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{rate_prev2|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</td>|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{rate2|0}}}|pattern=%b[]|replace=|plain=false}}|0}})<({{if empty|{{#invoke:String|replace|s={{{rate_prev2|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;">[[File:Red Arrow Down.svg|8px|link=|{{GetLabelFix|Q1049848|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:75%;padding-right:0px;"><span style="color:red">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{rate_prev2|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{rate2|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</span></td>|<td style="text-align:center;">[[File:Equal blue arrow.png|8px|link=]]</td>}} }} }}</tr>}}
<tr>{{#if:{{{seat_1|}}}|<td colspan="2">{{{seat_1|}}}</td><td style="text-align:right;padding-right:0.15em;">{{{value_prev_seat_1|}}}{{#if:{{{value_prev_seat_1|}}}|<small> →</small>}}</td><td style="text-align:right;padding-right:0.15em;">{{#ifexpr:({{if empty|{{{moment|}}}|0}})< 3|'''?'''|{{#if:{{{value_seat_1|}}}|'''{{{value_seat_1|}}}'''}}}}</td>{{#if:{{{value_prev_seat_1|}}}|{{#if:{{{value_seat_1|}}}|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{value_seat_1|0}}}|pattern=%b[]|replace=|plain=false}}|0}})>({{if empty|{{#invoke:String|replace|s={{{value_prev_seat_1|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;">[[File:Breezeicons-actions-22-list-add-user-green.svg|20px|link=|{{GetLabelFix|P1342|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:85%;">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{value_seat_1|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{value_prev_seat_1|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</td>|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{value_seat_1|0}}}|pattern=%b[]|replace=|plain=false}}|0}})<({{if empty|{{#invoke:String|replace|s={{{value_prev_seat_1|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;">[[File:Breezeicons-actions-22-list-remove-user.svg|20px|link=|{{GetLabelFix|P1342|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:85%;color:red;">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{value_prev_seat_1|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{value_seat_1|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</td>|<td style="text-align:center;">[[File:Equal blue arrow.png|8px|link=]]</td>}} }} |<td></td><td></td>}}|<td></td><td></td>}} |{{#if:{{{round2|}}}{{{seat_2|}}}||<td> </td>}} }}</tr>
{{#if:{{{seat_2|}}}|{{#if:{{{value_seat_2|}}}|<tr><td colspan="2">{{{seat_2|}}}</td><td style="text-align:right;padding-right:0.05em;">{{{value_prev_seat_2|}}}{{#if:{{{value_prev_seat_2|}}}|<small> →</small>}}</td><td style="text-align:right;padding-right:0.1em;">{{#if:{{{value_seat_2|}}}|'''{{{value_seat_2|}}}'''}}</td>{{#if:{{{value_prev_seat_2|}}}|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{value_seat_2|0}}}|pattern=%b[]|replace=|plain=false}}|0}})>({{if empty|{{#invoke:String|replace|s={{{value_prev_seat_2|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;">[[File:Breezeicons-actions-22-list-add-user-green.svg|20px|link=|{{GetLabelFix|P1342|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:85%;">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{value_seat_2|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{value_prev_seat_2|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</td>|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{value_seat_2|0}}}|pattern=%b[]|replace=|plain=false}}|0}})<({{if empty|{{#invoke:String|replace|s={{{value_prev_seat_2|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;">[[File:Breezeicons-actions-22-list-remove-user.svg|20px|link=|{{GetLabelFix|P1342|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:85%;color:#d73333;">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{value_prev_seat_2|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{value_seat_2|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</td>|<td style="text-align:center;">[[File:Equal blue arrow.png|8px|link=]]</td>}} }} |<td> </td>}}</tr>}} }} }}<!--
-->{{#if:{{{result_election|}}}|{{#if:{{{electorate|}}} |<tr><td style="padding-right:0.4em;width:3.5%;">[[file:{{if empty|{{MyValue|IBelection|img_electorate}}|Community Noun project 2280.svg}}|20x20px|class=skin-invert|{{GetLabelFix |P1831|lang={{{lang|}}}}}]]</td><td style="text-align:right;width:23%;">{{{electorate|}}}</td><td>{{#invoke:Wikidades|editAtWikidata|item={{{item|}}} |property=P1867|editicon=right}}</td></tr>}}
{{#if:{{{value|}}} |<tr><td style="padding-right:0.4em;width:3.5%;">[[file:{{if empty|{{MyValue|IBelection|img_voter}}|Q189760 noun 84860 ccReJeanSoo vote.svg}}|20px|class=skin-invert{{GetLabelFix |Q1339847|lang={{{lang|}}}}}]]</td><td style="text-align:right;width:23%;">{{{value|}}}</td><td style=width:55%;>{{#if:{{{electorate|}}}|{{Composition bar compact|{{formatnum:{{if empty|{{{rate|}}}|0}}|R}}|100|{{{barcolor|#6fc0f2}}}|width=120| void=y |per=1|parenthesis=y|valuestyle=font-size:85%;|perstyle=font-size:90%;|lang={{{lang|}}}|round=2}}}}</td>{{#if:{{{rate_prev|}}}{{{rate|}}}|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{rate|0}}}|pattern=%b[]|replace=|plain=false}}|0}})>({{if empty|{{#invoke:String|replace|s={{{rate_prev|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;width:1.4em;">[[File:Green Arrow Up.svg|8px|link=|{{GetLabelFix|Q1049848|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:75%;">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{rate|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{rate_prev|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</td>|{{#ifexpr:({{if empty|{{#invoke:String|replace|s={{{rate|0}}}|pattern=%b[]|replace=|plain=false}}|0}})<({{if empty|{{#invoke:String|replace|s={{{rate_prev|0}}}|pattern=%b[]|replace=|plain=false}}|0}})|<td style="text-align:center;width:1.4em;">[[File:Red Arrow Down.svg|8px|link=|{{GetLabelFix|Q1049848|lang={{{lang|}}}}}]]</td><td style="text-align:left;font-size:75%;width:2.2em;"><span style="color:#d73333">{{formatnum:{{#expr:( ({{#invoke:String|replace|s={{{rate_prev|0}}}|pattern=%b[]|replace=|plain=false}}) - ({{#invoke:String|replace|s={{{rate|0}}}|pattern=%b[]|replace=|plain=false}}) ) round 2}}}}</span></td>|<td style="text-align:center;width:1.4em;">[[File:Equal blue arrow.png|8px|link=]]</td>}} }} }}</tr>}}
{{#if:{{{valids|}}}{{{blancs|}}}{{{nuls|}}}|<tr><td style="padding-right:0.6em;">[[File:{{if empty|{{MyValue|IBelection|img_valid}}|Ballot Box Silhouette OK-green.svg}}|25px|{{GetLabelFix|P1697|lang={{{lang|}}}}}]]</td><td style="text-align:right;">{{{valids|}}}</td><td colspan="3"; style="text-align:left;font-size:75%; border:1px solid #c0c0c0;"> [[file:{{if empty|{{MyValue|IBelection|img_blank}}|Ballot_box-Blank.svg}}|25px|{{GetLabelFix|P5045|lang={{{lang|}}}}}]] {{if empty|{{{blancs|}}}| '''?''' }} [[file:{{if empty|{{MyValue|IBelection|img_void}}|Ballot Box Silhouette null-red.svg}}|25px|{{GetLabelFix|P5044|lang={{{lang|}}}}}]] {{if empty|{{{nuls|}}}| '''?''' }}</td></tr>}} }}
{{#if:{{{result_referendum|}}}|<tr><td style="height:0.01em;"></td><td></td><td></td><td></td></tr><tr>{{#ifexpr:{{str len|{{{referendum_text|}}}}}<5|<td style="width:20%;"></td>|<td></td>}}<td style="border:{{{border-width|1px}}} solid {{{border-color|#c0c0c0}}};font-weight: bold;width:{{#ifexpr:{{str len|{{{referendum_text|}}}}}<5|10%|30%}};">{{{referendum_text|}}}</td><td style="width:60%;padding:1px;">{{Composition bar compact|{{formatnum:{{if empty|{{{value|}}}|0}}|R}}|{{formatnum:{{if empty|{{{scope|}}}|1}}|R}}|{{if empty|{{{barcolor|}}}|#888}}|width=130| nodivisor=y |per=1|parenthesis=y|round=2|perstyle=font-size:90%;|valuestyle=font-size:85%;|lang={{{lang|}}} }}</td><td style="text-align:center;width:1.0em;">{{#if:{{{win|}}}|[[file:{{if empty|{{MyValue|IBelection|img_winner}}|Gnome-bookmark-new2.svg}}|25px|class=skin-invert|{{GetLabelFix|P1346|lang={{{lang|}}}}}]]}}</td></tr>}}</includeonly>
d2gkhi36ki61vovzj57klwed4csjdud
فرما:Composition bar compact
10
30845
142939
142120
2026-06-26T10:56:18Z
آیات محراج
11062
/* */
142939
wikitext
text/x-wiki
<includeonly><!-- _____________________________ Caixa externa __________________
--><div style="display: {{{display|inherit}}};<!--
-->border: {{{border-width|1px}}} solid {{{border-color|#c0c0c0}}};<!--
-->color: {{{color|#202122}}};<!--
-->background-color: {{{background-color|#f0f0f0}}};<!--
-->width: {{{width|100}}}px; height: {{{height|1.5em}}};"><!-- ____________ Barra __________
--><div style="display: {{{display|inherit}}};position: absolute;<!--
-->color: {{{color|#202122}}};<!--
-->background-color:{{#if:{{both|{{{4|}}}|{{{5|}}}}}<!--
-->|rgb({{#expr:floor({{#expr:255*{{{3|255}}}}})}},<!--
-->{{#expr:floor({{#expr:255*{{{4|0}}}}})}},<!--
-->{{#expr:floor({{#expr:255*{{{5|0}}}}})}})<!--
-->|{{#if:{{{hex|{{{3|}}}}}}
|{{MatchRegex|{{{hex|{{{3|}}}}}}|[Q]%d+<!-- és un item, cerca P465-color hex
-->|{{if then show|{{#invoke:wikidades|claim |property=P465 or P6364 or P462
|qualifier=P465 |item={{{hex|{{{3|}}}}}}
|formatting=table |list=false |editicon=no
|rowformat=$1}}
|#CCCCCC|#}}<!-- si no té P465, posa std., si en té, # com a prefix
-->|{{{hex|{{{3|#CCCCCC}}}}}} }}
|{{if then show|{{#invoke:wikidades|claim|property=P465 |list=false|editicon=no}}
|#CCCCCC|#}}<!-- si no té P465, posa std., si en té, # com a prefix
-->|{{{hex|{{{3|#CCCCCC}}}}}} }}
}};<!--
-->width:{{if both|{{{1|}}}|{{{2|}}}<!-- sense alguna dada, no barra
-->|{{#ifexpr:({{if empty|{{formatnum:{{#invoke:String|replace|s={{{1|0}}}|pattern=%b[]|replace=|plain=false}}|R}}|0}})>({{if empty|{{formatnum:{{#invoke:String|replace|s={{{2|1}}}|pattern=%b[]|replace=|plain=false}}|R}}|1}})<!-- limita rati a llargada caixa
-->|{{{width|100}}}<!--
-->|{{#expr:floor {{{width|100}}}*({{if empty|{{formatnum:{{#invoke:String|replace|s={{{1|0}}}|pattern=%b[]|replace=|plain=false}}|R}}|0}})/({{if empty|{{formatnum:{{#invoke:String|replace|s={{{2|1}}}|pattern=%b[]|replace=|plain=false}}|R}}|1}}) }}<!--
-->}}<!-- end 1 > 2
-->|0<!--
-->}}px;<!--
-->height: {{{height|1.5em}}};"></div><!-- _____________________ Text dins barra ____________
--><div style="display: {{{display|inherit}}}; position: absolute;<!--
-->width: {{{width|100}}}px; height: {{{height|1.5em}}};<!--
-->font-weight: bold; text-align: center; z-index: 5;<!--
-->color: {{{color|#000}}};{{{valuestyle|}}}"><!--
-->{{if both|{{{1|}}}|{{{2|}}}<!-- hi ha dividend i divisor
-->|{{#if:{{{void|}}}|<!-- no es vol mostrar text divend / divsor
-->|{{#invoke:Wikidades | formatNum | {{formatnum:{{#invoke:String|replace|s={{{1|0}}}|pattern=%b[]|replace=|plain=false}}|R}} | {{{lang|}}} }}<!-- editar dividend s/lang
-->{{#if:{{{nodivisor|}}}|<!-- Si no es vol mostrar divisor, saltar
-->| / {{#invoke:Wikidades | formatNum | {{formatnum:{{#invoke:String|replace|s={{{2|0}}}|pattern=%b[]|replace=|plain=false}}|R}} | {{{lang|}}} }}<!-- editar divisor s/lang
-->}}<!-- end divisor
-->}}<!-- end {{{void|}}}
-->{{#if:{{{per|}}}<!-- es vol rati
-->| <span style="{{{perstyle|}}};"><!--
-->{{#if:{{{parenthesis|}}}|<!-- no posar -->|(}}<!-- afegir (
-->{{#ifeq:{{{per|}}}|2<!-- es vol complement del percentatge
-->|{{formatnum:{{#expr:100-(({{if empty|{{formatnum:{{#invoke:String|replace|s={{{1|0}}}|pattern=%b[]|replace=|plain=false}}|R}}|0}})/({{if empty|{{formatnum:{{#invoke:String|replace|s={{{2|1}}}|pattern=%b[]|replace=|plain=false}}|R}}|1}}))*100 round {{if empty|{{{round|}}}|1}} }}}} <!--
-->|{{formatnum:{{#expr:((({{if empty|{{formatnum:{{#invoke:String|replace|s={{{1|0}}}|pattern=%b[]|replace=|plain=false}}|R}}|0}})/({{if empty|{{formatnum:{{#invoke:String|replace|s={{{2|1}}}|pattern=%b[]|replace=|plain=false}}|R}}|1}}))*100) round {{if empty|{{{round|}}}|1}} }}}}<!--
-->}}٪<!--
-->{{#if:{{{parenthesis|}}}|<!-- no tancar parèntesi -->|)}}<!--
--></span><!-- fi span del rati,
-->}}<!-- fi If {{{per|}}}<!--
-->|<!-- no tenim 1 o 2. Comprovar si tenim 1 per mostrar-lo sense cap rati
-->{{#if:{{{void|}}}|<!-- no es vol mostrar text divend / divsor
-->|{{#if:{{{1|}}}|{{#invoke:Wikidades | formatNum |{{formatnum:{{#invoke:String|replace|s={{{1|0}}}|pattern=%b[]|replace=|plain=false}}|R}} |{{{lang|}}} }}<!-- dividend sense divisor, edita el valor -->
|{{novalue|lang={{{lang|}}}}} <!-- sense dividend ni divisor (1&2), missatge "sense dades"
-->}}<!-- fi If 1, sense 2
-->}}<!-- fi If void
-->}}<!-- fi If both 1&2
--></div><!-- fi DIV del text
--></div><!-- fi DIV de la caixa
--></includeonly><noinclude>{{documentation}}</noinclude>
pa6dlyeuxxi43awgzv02xbuj6t22eqd
کشمیٖریٹس
0
30927
142892
142404
2026-06-25T18:05:00Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142892
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{مولوٗماتھ}}
کشمیٖریٹس ٲسؠ پٔرمین پؠٹھ ابتدٲیی ٹرٛیاسکس مَنٛز روزان وٲلؠ جانور۔
8qubzgrk3hd30dnfqxhgg340b0rnb8f
بوبی پرِٛنٕس
0
30932
142886
142434
2026-06-25T18:04:30Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142886
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes|abovestyle=Background: lightsteelblue|birth_name=رابرٹ کیسکن پرِٛنٕس III}}
'''رابرٹ کیسکن پرِٛنٕس III''' (12 مارٕچ 1945 - 16 جوٗن 2026) اوس اَکھ امریکی ویٖڈیو گیم موسیقار تہٕ ساؤنڈ ڈیزاینر۔ پرنس گُزریو 16 جوٗن 2026 81 وٲنسہِ مَنٛز۔<ref name=":0">{{cite web|title=Robert 'Bobby' Caskin Prince III|url=https://www.legacy.com/legacy/robert-bobby-prince-lll|publisher=[[Legacy.com]]|accessdate=June 20, 2026}}</ref>
==حَوالہٕ==
[[زٲژ:اَمریٖکی لوٗکھ]]
[[زٲژ:1945 پٲدٲیِش]]
[[زٲژ:2026 وَفات]]
n4rorcjuf9ica7kbofp6yrmse00t6zr
ایٚلیٚکسزینٛڈرِیا، اِنٛڈیانا
0
30935
142880
142467
2026-06-25T18:04:00Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142880
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
ایٚنٛڈریسن، اِنٛڈیانا
0
30936
142879
142468
2026-06-25T18:03:55Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142879
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
اَنٛگولا، اِنٛڈیانا
0
30937
142881
142466
2026-06-25T18:04:05Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142881
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
ایٚٹِکا، اِنٛڈیانا
0
30938
142878
142469
2026-06-25T18:03:50Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142878
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
آبرن، اِنٛڈیانا
0
30939
142884
142463
2026-06-25T18:04:20Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142884
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
آرورا، اِنٛڈیانا
0
30940
142883
142464
2026-06-25T18:04:15Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142883
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
آسٹِن، اِنٛڈیانا
0
30941
142882
142465
2026-06-25T18:04:10Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142882
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
بیٹسویل، اِنٛڈیانا
0
30942
142868
142479
2026-06-25T18:03:00Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142868
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
بیٚڈفورڈ، اِنٛڈیانا
0
30943
142869
142478
2026-06-25T18:03:05Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142869
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
بیٖچ گرٛوٗو، اِنٛڈیانا
0
30944
142870
142477
2026-06-25T18:03:10Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142870
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
== تفصیٖلات ==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
gcpx5bwutz8qp84qb99md415u7id70v
برن، اِنٛڈیانا
0
30945
142877
142470
2026-06-25T18:03:45Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142877
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
بِکنیل، اِنٛڈیانا
0
30946
142872
142475
2026-06-25T18:03:20Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142872
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
بلوٗمِنٛگٹن، اِنٛڈیانا
0
30947
142874
142473
2026-06-25T18:03:30Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142874
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
بلفٹن، اِنٛڈیانا
0
30948
142875
142472
2026-06-25T18:03:35Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142875
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
بوٗنویل، اِنٛڈیانا
0
30949
142873
142474
2026-06-25T18:03:25Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142873
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
برٛازیٖل، اِنٛڈیانا
0
30950
142876
142471
2026-06-25T18:03:40Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142876
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
بٹلر، اِنٛڈیانا
0
30951
142871
142476
2026-06-25T18:03:15Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142871
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کینلٹن، اِنٛڈیانا
0
30952
142860
142487
2026-06-25T18:02:20Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142860
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کارمٔل، اِنٛڈیانا
0
30953
142866
142481
2026-06-25T18:02:50Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142866
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
چالس ٹاوُن، اِنٛڈیانا
0
30954
142867
142480
2026-06-25T18:02:57Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142867
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کلِنٹن، اِنٛڈیانا
0
30955
142865
142482
2026-06-25T18:02:45Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142865
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کولمبیا سِٹی، اِنٛڈیانا
0
30956
142863
142484
2026-06-25T18:02:35Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142863
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کولمبس، اِنٛڈیانا
0
30957
142864
142483
2026-06-25T18:02:40Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142864
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کونرزویل، اِنٛڈیانا
0
30958
142862
142485
2026-06-25T18:02:30Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142862
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کووِنٛگٹن، اِنٛڈیانا
0
30959
142861
142486
2026-06-25T18:02:25Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142861
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کرٛافورڈزویل، اِنٛڈیانا
0
30960
142885
142461
2026-06-25T18:04:25Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142885
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
کرٛاؤن پۄیِنٛٹ، اِنٛڈیانا
0
30962
142859
142488
2026-06-25T18:02:15Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142859
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
ڈیکاٹر، اِنٛڈیانا
0
30963
142858
142489
2026-06-25T18:02:10Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142858
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
ڈیٚلفی، اِنٛڈیانا
0
30964
142857
142490
2026-06-25T18:02:05Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142857
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
751grkx8ev44kqu4gpjv8s9svwz8qfg
پوٗر شِکاگو، اِنٛڈیانا
0
30967
142856
142494
2026-06-25T18:02:00Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142856
wikitext
text/x-wiki
{{infobox settlement/Wikidata}}
{{PAGENAMEBASE}} یا مشرقی شِکاگو چھُ [[اَمریٖکہ|اَمریٖکٕچ]] رِیاسَتھ [[اِنٛڈیانا]] ہُک اَکھ شَہَر۔<ref>{{ویب حَوالہٕ|title=Indiana Cities by Population (2026)|url=https://www.indiana-demographics.com/cities_by_population|access-date=2026-06-24|website=www.indiana-demographics.com}}</ref>
==تفصیٖلات==
امیُٛک کُل رۄقبہٕ چھُ {{#statements:P2046}}۔
===آبٲدی===
{{Historical populations/Wikidata}}
==حَوالہٕ==
{{حَوالہٕ}}
[[زٲژ: اِنٛڈیانا پٕکؠ شہر]]
04e0vwok7h4doxrq6imqvf403pzkfzz
جارج رحال
0
31068
142855
142660
2026-06-25T18:01:55Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142855
wikitext
text/x-wiki
{{Infobox person
| name = جارج رحال
| image =
| caption = جارج رحال
| birth_date = {{Birth date and age|1985|7|10}}
| nationality = آسٹریلین
| education = ماسٹرس آف فنانشل پلاننگ
| alma_mater = ویسٹرن سڈنی یونیورسٹی<br>کیپلان پروفیشنل
| occupation = مالی منصوبہٕ ساز، کاروباری شخصیت
| years_active = 2007–تہِ ہا
| employer = کیپیٹل ہاؤس
| website = {{URL|https://www.capitalhaus.com}}
}}
'''جارج رحال''' (پیدٲیِش: ۱۰ جُلَے ۱۹۸۵) اَکھ آسٹریلین مالی منصوبہٕ ساز، سرمایہ کاری مشیر تہٕ کاروباری شخصیت چھُ۔ وۄنؠہٕ چھُ مالی منصوبہٕ بندی، دولت انتظام تہٕ سرمایہ کاری مشاورت مَنٛز پنُن پیشہ ورانہ کردار نبھاون۔<ref name=":0">{{ویب حَوالہٕ|date=2026-05-04|title=Global private wealth manager charges ahead after Baker Young buy - News {{!}} InDaily, Inside South Australia|url=https://www.indailysa.com.au/news/business/2026/05/04/global-private-wealth-manager-charges-ahead-after-baker-young-buy|access-date=2026-06-24|website=www.indailysa.com.au|language=en}}</ref>
== ابتدٲیی زندگی ==
جارج رحال ہُنٛد پیدٲیِش ۱۰ جُلَے ۱۹۸۵ کُن گٔیہٕ۔ وۄنؠہٕ چھُ کم عُمری پؠٹھ مالیات، کاروبار تہٕ سرمایہ کاری مَنٛز دلچسپی روزان۔<ref name=":0" />
== تٲلیٖم ==
رحال ہٕنٛد '''ماسٹرس آف فنانشل پلاننگ''' ڈگری حٲصِل کرمٕژ۔ وۄنؠہٕ ہُنٛد اعلیٰ تٲلیٖم یِم ادارن مَنٛز مکمل گٔیہٕ:<ref>{{ویب حَوالہٕ|last=Allen|first=Robert|title=Michigan survivors recall horrors of 2005 boat tragedy|url=https://www.freep.com/story/news/local/michigan/2015/10/02/ethan-allen-10th-anniversary/73155552/|access-date=2026-06-24|website=Detroit Free Press|language=en-US}}</ref>
* ویسٹرن سڈنی یوٗنِوَرسِٹی<ref>{{ویب حَوالہٕ|date=2026-05-07|title=Baker Young celebrates merger - SALIFE {{!}} InDaily, Inside South Australia|url=https://www.indailysa.com.au/salife/out-about/2026/05/07/baker-young-celebrates-merger|access-date=2026-06-24|website=www.indailysa.com.au|language=en}}</ref>
* کیپلان پروفیشنل
== پیشہ ورانہ زندگی ==
جارج رحال چھُ مالی منصوبہٕ بندی، سرمایہ کاری حکمتِ عملی تہٕ دولت انتظام مَنٛز سرگرم۔ وۄنؠہٕ چھُ '''کیپیٹل ہاؤس''' سٟتؠ وابستہ، یَتھ ذریعہٕ وۄنؠہٕ گاہکَن مالی مشورٕ تہٕ سرمایہ کاری خدمات فراہم کران چھُ۔
وۄنؠہٕ ہُنٛد کام دولت منصوبہٕ بندی، سرمایہ کاری تجزیہ، اثاثہٕ انتظام تہٕ مالی حکمتِ عملی مَنٛز شٲمِل چھُ۔<ref>{{ویب حَوالہٕ|title=Indian students first to enrol for Rahhal in UAE|url=https://www.khaleejtimes.com/uae/indian-students-first-to-enrol-for-rahhal-in-uae|access-date=2026-06-24|website=Khaleej Times|language=en}}</ref><ref>{{ویب حَوالہٕ|title=Rahhal gives sporting students a head start|url=https://www.khaleejtimes.com/uae/education/rahhal-gives-sporting-students-a-head-start|access-date=2026-06-24|website=Khaleej Times|language=en}}</ref>
== سوشل میڈیا ==
* انسٹاگرام: [https://www.instagram.com/georgeymach @georgeymach]
* لنکڈاِن: [https://www.linkedin.com/in/george-rahhal George Rahhal]
== بیرونی ربط ==
* [https://www.capitalhaus.com کیپیٹل ہاؤس]
== حَوالہٕ ==
<references />
{{DEFAULTSORT:رحال، جارج}}
[[Category:1985 births]]
[[Category:Living people]]
[[Category:Australian businesspeople]]
[[Category:Financial advisers]]
[[Category:Australian people]]
8qr91ternecykkz00fcipwvnnep2kbt
بورون
0
31070
142854
142658
2026-06-25T18:01:50Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142854
wikitext
text/x-wiki
{{Infobox element|color=Yellow}}
'''بوران''' (نِشان: B، ایٹم نمبر: 5) چھُ اَکھ قۄدرتی طور لبنہٕ یِنہٕ وول، نایاب میٹالایڈ یُس پنٛنہ قٲبل ذکر طاقت، گرمی ہٕنٛز مزاحمت، تہٕ نیوٹران جذب کرنٕچ صلٲحیت خٲطرٕ زاننہٕ چھ یوان۔ ییٚلہ زن انسٲنی میملن مَنٛز چھنہٕ اَتھ کانٛہہ قطعی طور قٲیم حیاتیاتی کردار آسان، مگر یہِ چھُ کُلیٚن کٹیٚن ہٕنٛزن سؠلن ہٕنٛدیٚن دیوارن خٲطرٕ اَکھ ضۆروٗری مایکرونیوٹرینٹ تہٕ صنعتی، طبی تہٕ زرعی شعبن مَنٛز بٔڑس پیمانس پیٚٹھ اِستِمال گژھان۔
یہٕ چھُ زمین کہ کرسٹ کہ وزن کہ لحاظٕ سٟتؠ تقریبن 0.001 فیٖصد۔<ref>{{cite web|title=Boron|url=https://www.britannica.com/science/boron-chemical-element|url-status=live|archive-url=https://web.archive.org/web/20200804181151/https://www.britannica.com/science/boron-chemical-element|archive-date=4 August 2020|access-date=4 August 2020|website=Britannica encyclopedia}}</ref>
== حَوالہٕ ==
[[زٲژ:رساێن تۄتھ]]
hj8aeb40ab2gupv570pw12bnjj906kf
نایٹروجن
0
31083
142853
142757
2026-06-25T18:01:45Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142853
wikitext
text/x-wiki
{{Infobox element|color=Yellow}}
'''نایٹروجن''' چھُ اَکھ [[رسایٚن تۄتھ]] (نِشان N، ایٹم نمبر 7) یس کمرٕ کس درجہٕ حرارتس پیٚٹھ اَکھ بے رنگ، مُشکہٕ رۆس تہٕ زیٛادٕ تر غٲر رد عمل گیس چھِ آسان۔ یہٕ چھُ زمین کہِ ماحولُک تَقریٖبَن 78٪ بناوان تہٕ تمام جاندارن خٲطرٕ چھُ اَکھ ضۆروٗری تعمیرٲتی بلاک، کیاز کہِ یہٕ چھُ [[اَمَینو ایسِڈ]]، [[پرٛوٹیٖن]] تہٕ [[ڈی این اے]] یُک اَکھ اہم جزو۔
نایٹروجن چھُ پرٛؠتھ بٔڑس فارماکولوجیکل دَوا کِس طبقہٕک اَکھ جُز، یَتھ مَنٛز [[اینٹی بَیاٹِکس]] تہٕ شٲمِل چھُ۔<ref>Rutherford, Daniel (1772) "[https://books.google.com/books?id=JxUUAAAAQAAJ Dissertatio Inauguralis de aere fixo, aut mephitico] {{Webarchive|url=https://web.archive.org/web/20200806192616/https://books.google.com/books?id=JxUUAAAAQAAJ&printsec=frontcover&hl=en&source=gbs_ge_summary_r&cad=0 |date=2020-08-06 }}" (Inaugural dissertation on the air [called] fixed or mephitic), M.D. dissertation, University of Edinburgh, Scotland. English translation: {{cite journal | first = Leonard | last = Dobbin | title = Daniel Rutherford's inaugural dissertation |year = 1935 | journal = Journal of Chemical Education | volume = 12 | issue = 8 | pages = 370–75 |doi = 10.1021/ed012p370| bibcode = 1935JChEd..12..370D }}</ref>
== حَوالہٕ ==
[[زٲژ:رساێن تۄتھ]]
16tcviqkoyshi12in4c2g2izkdb6bkp
فلوریٖن
0
31084
142852
142760
2026-06-25T18:01:40Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142852
wikitext
text/x-wiki
{{Infobox element|color=Yellow}}
'''فلوریٖن''' چھُ اَکھ [[رسایٚن تۄتھ]]۔ اَتھ چھُ نِشان F تہٕ ایٹم نمبر 9۔ یہِ چھ ساروٕے کھۄتہٕ ہلکہٕ [[ہیلوجن]] تہٕ معیٲری حالاتن مَنٛز ہلکہٕ لیٚدرِ ڈایٹمک گیس ہٕنٛدس طورس پیٚٹھ موجوٗد آسان۔ فلوریٖن چھُ انتہٲیی ردِ عمل کران تِکیازِ یہِ چھُ ہلکہٕ [[نوبل گیس|نوبل گیسن]] علاوٕ باقٕے تمام [[رسایٚن تۄتھ|تۄتن]] سٟتؠ ردِعمل ظٲہر کران۔ فلوریٖن چھُ پننہِ تۄتھ شکلہِ مَنٛز انتہٲیی زہریٖلہٕ آسان۔<ref>{{harvnb|Moore|Stanitski|Jurs|2010|p=[https://books.google.com/books?id=ZOm8L9oCwLMC&pg=PA156 156]}}.</ref>
== حَوالہٕ ==
[[زٲژ:رساێن تۄتھ]]
8nip3trl5paa3q8gq0wdjmz2t932h1j
پوٹیشیم کلورایڈ
0
31085
142851
142762
2026-06-25T18:01:35Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142851
wikitext
text/x-wiki
{{Infobox chembox}}
پوٹیشیم کلورایڈ (KCl، یا پوٹاشیم نوٗن) چھُ اَکھ داتوٗ ہیلایڈ نوٗن یُس [[پوٹیشیم]] تہٕ [[کلوریٖن]] پؠٹھ مشتمل چھُ۔ یہِ چھُ مُشکہٕ رۆس آسان تہٕ یہِ چھُ سفید یا بے رنگ شیشہٕ دار کرسٹل شکلہِ آسان۔ ٹھوس چھُ آسٲنی سان آبس مَنٛز گلان، تہٕ امِکؠ محلولَس چھُ نوٗنہٕ ہیوٗ مَزٕ آسان۔ پوٹیشیم کلورایڈ ہیکو قدیم خشک [[سَر|سر]] ذخیرٕ سٟتؠ حٲصل کٔرِتھ۔<ref>{{Cite book|title=Descriptive inorganic chemistry|vauthors=Rayner-Canham G, Overton T|date=22 December 2013|publisher=W. H. Freeman|isbn=978-1-4641-2557-7|edition=Sixth|location=New York, NY|oclc=882867766}}</ref> KCl چھُ [[سوڈیم کلورایڈ|ٹیبل نونہٕ]] (NaCl) خٲطرٕ نونک متبادل کس طورس پؠٹھ، کھادٕ کس طورس پؠٹھ، بطور دَوا، ساینسی استعمالن مَنٛز، گھریلو آبہٕ نرم کرن والن (سوڈیم کلورایڈ نوٗنک متبادل کس طورس پؠٹھ)، فیڈ سٹاک کس طورس پؠٹھ، تہٕ فوڈ پروسیسنگس مَنٛز اِستِمال یوان کرنہٕ، ییٚتہ اَتھ E نمبر اضٲفی E508 وننہٕ چھ یوان۔
== حَوالہٕ ==
[[زٲژ:رساێن سمُت]]
pm688wzuhts83vltm4d1a9zhrezidej
پوٹیشیم
0
31086
142850
142764
2026-06-25T18:01:30Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142850
wikitext
text/x-wiki
{{Infobox element|color=Lightpink}}
'''پوٹیشیم''' چھُ اَکھ نرم، رۄپہٕ سفید داٹھ [[رسایٚن تۄتھ|تۄتھ]] یُس شرٛاکہِ سٟتؠ (نِشان K، ایٹم نمبر 19)۔ اِنسٲنی جسمس مَنٛز چھُ یہِ اَکھ اہم [[کھانُز]] تہٕ اِلیکٹرولایٹ پٲٹھؠ کٲم کران۔ یہِ چھُ سیالُک توازُن برقرار کران، مُنٲسِب نٲرن ہٕنٛز منتقلی یقیٖنی بناوان، تہٕ صحت مند [[مَژھ|مژھن]] ہُنٛد سنکچن برقرار تھاوان، خاص طور [[دِل (جِسمٲنؠ اَنٛگ)|دِلس]] مَنٛز۔<ref>{{cite encyclopedia|url=https://www.britannica.com/science/potassium|title=Potassium/ Chemical element|last=Augustyn|first=Adam|encyclopedia=Encyclopedia Britannica|access-date=2019-04-17|quote=Potassium Physical properties|archive-date=2019-07-09|archive-url=https://web.archive.org/web/20190709132602/https://www.britannica.com/science/potassium|url-status=live}}</ref>
== حَوالہٕ ==
[[زٲژ:رساێن تۄتھ]]
kawyv6u3gjdnb77a5m90oobqwic7rye
سیسِل ارٕل ٹِنٛڈیل بِسکو
0
31087
142849
142769
2026-06-25T18:01:25Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142849
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''سیسِل ارٕل ٹِنٛڈیل بِسکو''' (۹ فَرؤری ۱۸۶۳ - ۱ اَگَست ۱۹۴۹) اوس اَکھ برطانوی مِشنری تہٕ مٲہِر تٲلیٖم، یِمو [[کٔشیٖر|کٔشیٖرِ]] مَنٛز کٲم کٔر ییٚتہِ تِمو مشہوٗر [[ٹِنڈَل بِسکو سۆکوٗل|ٹِنڈیل بِسکو سکول]] قٲیِم کٔر۔
== زِندگی ==
[[فَیِل:Irene Petrie book has this of holton cottage.jpg|thumb|ہولٹن کوٹیج کٔشیٖر مَنٛز ]]
بِسکو، یُس [[ہولٹن]]، [[اِنگلِستان|انگلینڈَس]] مَنٛز زامُت، اوس أکِس زمیندار خاندانُک نیٚچُو تہٕ أمؠ کٔر بریڈ فیلڈ کالیج تہٕ جیسس کالج، کیمبرجَس مَنٛز تٲلیٖم حٲصِل، ییٚتہِ تٔمؠ باوقار ریسَن مَنٛز زینَن وٲلؠ اہلہِ کارن تہِ کٔرؠ۔<ref name=peerage>[http://thepeerage.com/p32058.htm#i320580 the Peerage.com]</ref> بی اے حٲصِل کرنہٕ تہٕ اینگلیکن پادٕرؠ بننہٕ پتہٕ کٔر تٔمؠ 1890 مَنٛز کٔشیٖرِ کِس أکِس مِشنری سکولس مَنٛز شٲمِل گژھنہٕ برٛونٛہہ لندن کِس ایسٹ اینڈس مَنٛز مختصر وقتَس خٲطرٕ کٲم، ییٚتہِ تٔمؠ بلینچے وایلیٹ برجزس سٟتؠ خانٛدر کوٚر تہٕ یِمَن زاے ژور شُرؠ۔ کٔشیٖرِ مَنٛز کٔر تٔمؠ پنٕنؠ عیٖسٲے تہٕ شہری نظریات اِستِمال کٔرِتھ سمٲجی حالات بہتر بناونٕچ کوٗشش، حالانٛکہِ تٔمِس اوس نہٕ مذہب تبدیل کرنَس پؠٹھ پُرجوش توجہ دِوان۔ تٔمؠ سٕنٛدِ تعلیمی نۄقطہٕ نظر دِژ جسمٲنی سرگرمین تہٕ شہری فرضن ترجیح، ییٚمیُک مقصد محض فکری چالاکی کھۄتہٕ زیٛادٕ صفات بڑاو دیُن اوس۔ تٔمہِ کٔر 1,800 طٲلبہِ عٔلِمن خٕدمَت دِنہٕ خٲطرٕ شےٚ سکوٗل قٲیِم تہٕ 1912 ہَس مَنٛز کوٚرُن قیصر ہِنٛد تمغہٕ حٲصِل، 1929 مَنٛز بار ہیتھ ۔ [[ہِندوستانٕچ آزٲدی ہِنٛز تٔحریٖک|ہندوستانچہِ آزٲدی]] پتہٕ گوٚو سُہ جٔنوٗبی روڈیشیا، ییٚتہِ سُہ 1949 ہَس مَنٛز گزرے۔
==حَوالہٕ==
[[زٲژ:1863 پٲدٲیِش]]
[[زٲژ:1949 وَفات]]
[[زٲژ:بَرطٲنوی لوٗکھ]]
szpsjov4xt6sqpzvnmi933h2e1hm0q9
اَیریٖن پیٹری
0
31088
142848
142772
2026-06-25T18:01:20Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142848
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''اَیریٖن ایلینورا ویریٹا پیٹری''' (اکتوبر 1864 - 6 اَگَست 1897) ٲس اَکھ برطانوی مِشنری یۄس 1897 مَنٛز [[بَرِصَغیٖر ہِند|برصغیر پاک و ہند]] کِس [[کٔشیٖر|کشیرِ]] مَنٛز گُزرے۔
== زِنٛدگی ==
[[فَیِل:Irene Petrie book has this of holton cottage.jpg|thumb|پیٹری ہولٹن کوٹیج کٔشیٖر مَنٛز ]]
پیٹری، یُس اکتوبر 1864 مَنٛز کینسنگٹن پارکہِ مَنٛز ایلینور تہٕ کرنل مارٹن پیٹری یس زاے، ٲس گرس تہٕ نوٹنگ ہل ہایی سکولس مَنٛز تٲلیٖم حٲصل کٔرمٕژ۔ ابتدٲیی طور ہندوستانَس مَنٛز مشنری بننُک مقصد اوس، تٔمِس کٔر چرچ مشنری سوسایٹیَن تربیت تہٕ 1893 مَنٛز وٲتؠ [[لوہوٗر]]۔ [[سِریٖنَگَر|سرینگرَس]] مَنٛز کٲم کرنہٕ پتہٕ آیہِ سۄ حمایت حٲصِل کرنہٕ خٲطرٕ [[اِنگلِستان]] واپس تہٕ کٔرٕن پنٕنؠ تبلیغی کٲم دُبارٕ شۆروٗع۔ پیٹری اوس شُرؠن ہیٚچھناوان تہٕ مقٲمی زنانن سٟتؠ مشغول روزان، انگریزی کھۄتہٕ زیٛادٕ اُردوٗ خدماتس ترجیح دِوان۔ سۄ گُزرے 1897 تس مَنٛز [[لیہہ]] ہس مَنٛز [[تَپھ|تپہٕ]] سٟتہِ ، تہٕ تمہِ سٕنٛزِ بیٚنہِ مریم کٔر پننہِ زانہِ زِندگی واریاہن ایڈیشنن مَنٛز شایَع۔<ref name="Keenan2013">{{cite book|author=Brigid Keenan|title=Travels in Kashmir|url=https://books.google.com/books?id=oilxiI9uso8C&pg=PA45|date=20 May 2013|publisher=Hachette India|isbn=978-93-5009-729-8|pages=45–}}</ref>
==حَوالہٕ==
[[زٲژ:1864 پٲدٲیِش]]
[[زٲژ:1897 وَفات]]
[[زٲژ:بَرطٲنوی لوٗکھ]]
218otbwtjdnmmhumkui73c3283dcti3
2026 وینَزوٗیِلا بُنیُل
0
31092
142802
2026-06-25T13:50:47Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1361076342|2026 Venezuela earthquakes]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142802
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|image=Terremoto en La Pastora.webm|caption=سی سی ٹی وی فوٗٹیج|map2={{Location map many | Venezuela
| relief = yes
| label1 =
| lat = 10.453
| long = -68.514
| mark = Bullseye1.png
| marksize = 50
| position = right
| width = 260
| float = center
|label2 = Caracas
|lat2 = 10.506
|long2 = -66.914
|mark2 = Red pog.svg
|mark2size = 10
|position2 = right
| caption = }}|local-date=24 June 2026|timestamp=2026-06-24 22:04:33|timestamp-A=2026-06-24 22:05:11|local-time=18:04:33 [[Time in Venezuela|VET]] ([[UTC-4]])|local-time-A=18:05:11 VET (UTC-4)|magnitude={{M|w|link=y|7.2}}|magnitude-A={{M|w|link=y|7.5}}|affected=[[وینَزوٗیِلا]]|location={{coord|10.435|N|68.472|W}}|intensity={{MMI|IX}}|tsunami=|landslide=|fault=|type=[[:en:Strike-slip fault|Strike-slip]]|damage=|foreshocks=|aftershocks=30|anss-url=us6000t7zc|anss-url-A=us6000t7zp|depth={{cvt|21.9|km|mi|0|abbr=on}}|depth-A={{cvt|10|km|mi|0|abbr=on}}|casualties=164+ موتھ، 1,000+ زخمی، 14,000+ لاپتا|isc-event=645903460|pga=|pgv=|duration=}}
24 جوٗن 2026 ہس منٛز، دۄیو بٔڑۍ سٹرائیک سلپ بُنیُل کوٚر شمال مغربی تہٕ مرکزی [[وینَزوٗیِلا]] متٲثر۔ گۄڈنیُک بُنیُل، ییٚمیُک پیمٲئش Mw 7.2 اوس یاراکویَس منٛز 20 کلومیٹر (12 میٖل) سرٛنٮ۪رَس پیٹھ آمُت۔ یہِ بُنیُل آو 18:04 VET۔ یہِ آو پیش شَکہٕ کِس طورس پیٹھ درجہٕ بندی کرنہٕ، تہٕ امہِ پتہٕ آو 39 سیکنڈ پتہٕ Mw 7.5 بُنیُل۔بٔڑِس بُنیُلُک مرکز تہِ اوس یاراکویَس منٛز واقعہٕ۔ دۄشوٕے بُنِیلہِ سۭتۍ گوٚو پوٗرٕ مُلکَس منٛز بٔڑِس پیمانَس پٮ۪ٹھ نۄقصان، خاص پٲٹھۍ [[لا گویرا]] تہٕ دارالحکوٗمت [[کاراکاس|کاراکاسَس]] منٛز۔ کم از کم گٔیہِ 164 نفر ہلاک، 1,000 کھۄتہٕ زیٛادٕ زخمی تہٕ 14,000 کھۄتہٕ زیٛادٕ لاپتا گژھنٕچ اطلاع۔ یوٗ ایس جی ایسُک پیجر سسٹمَن چھُ پیشن گویی کران زِ مرنَن ہٕنٛدِس تعدادَس منٛز چھُ واریاہ ہُریرُک اِمکان۔ پتہٕ وول واقعہٕ چُھ وینزویلا ہس منز 1900 کہِ سان نارسیسو بُنلہِ پتہٕ ساروی کھوتہٕ بوٚڑ بُنیُل۔
b94w5u7ben7y506r47y6c13xxxspwdf
142805
142802
2026-06-25T13:55:36Z
آیات محراج
11062
/* */
142805
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|image=Terremoto en La Pastora.webm|caption=سی سی ٹی وی فوٗٹیج|map2={{Location map many | Venezuela
| relief = yes
| label1 =
| lat = 10.453
| long = -68.514
| mark = Bullseye1.png
| marksize = 50
| position = right
| width = 260
| float = center
|label2 = Caracas
|lat2 = 10.506
|long2 = -66.914
|mark2 = Red pog.svg
|mark2size = 10
|position2 = right
| caption = }}|local-date=24 June 2026|timestamp=2026-06-24 22:04:33|timestamp-A=2026-06-24 22:05:11|local-time=18:04:33 [[Time in Venezuela|VET]] ([[UTC-4]])|local-time-A=18:05:11 VET (UTC-4)|magnitude={{M|w|link=y|7.2}}|magnitude-A={{M|w|link=y|7.5}}|affected=[[وینَزوٗیِلا]]|location={{coord|10.435|N|68.472|W}}|intensity={{MMI|IX}}|tsunami=|landslide=|fault=|type=[[:en:Strike-slip fault|Strike-slip]]|damage=|foreshocks=|aftershocks=30|anss-url=us6000t7zc|anss-url-A=us6000t7zp|depth={{cvt|21.9|km|mi|0|abbr=on}}|depth-A={{cvt|10|km|mi|0|abbr=on}}|casualties=164+ موتھ، 1,000+ زخمی، 14,000+ لاپتا|isc-event=645903460|pga=|pgv=|duration=}}
{{multiple image
| header = USGS ShakeMaps of the M7.2 and M7.5 events
| width = 200px
| image1 = M 7.2 - 24 km ENE of San Felipe, Venezuela.png
| alt1 =
| caption1 =
| image2 = M 7.5 - 23 km SE of Yumare, Venezuela.png
| alt2 =
| caption2 =
}}
24 جوٗن 2026 ہس منٛز، دۄیو بٔڑۍ سٹرائیک سلپ بُنیُل کوٚر شمال مغربی تہٕ مرکزی [[وینَزوٗیِلا]] متٲثر۔ گۄڈنیُک بُنیُل، ییٚمیُک پیمٲئش Mw 7.2 اوس یاراکویَس منٛز 20 کلومیٹر (12 میٖل) سرٛنٮ۪رَس پیٹھ آمُت۔ یہِ بُنیُل آو 18:04 VET۔ یہِ آو پیش شَکہٕ کِس طورس پیٹھ درجہٕ بندی کرنہٕ، تہٕ امہِ پتہٕ آو 39 سیکنڈ پتہٕ Mw 7.5 بُنیُل۔بٔڑِس بُنیُلُک مرکز تہِ اوس یاراکویَس منٛز واقعہٕ۔ دۄشوٕے بُنِیلہِ سۭتۍ گوٚو پوٗرٕ مُلکَس منٛز بٔڑِس پیمانَس پٮ۪ٹھ نۄقصان، خاص پٲٹھۍ [[لا گویرا]] تہٕ دارالحکوٗمت [[کاراکاس|کاراکاسَس]] منٛز۔ کم از کم گٔیہِ 164 نفر ہلاک، 1,000 کھۄتہٕ زیٛادٕ زخمی تہٕ 14,000 کھۄتہٕ زیٛادٕ لاپتا گژھنٕچ اطلاع۔ یوٗ ایس جی ایسُک پیجر سسٹمَن چھُ پیشن گویی کران زِ مرنَن ہٕنٛدِس تعدادَس منٛز چھُ واریاہ ہُریرُک اِمکان۔ پتہٕ وول واقعہٕ چُھ وینزویلا ہس منز 1900 کہِ سان نارسیسو بُنلہِ پتہٕ ساروی کھوتہٕ بوٚڑ بُنیُل۔
mmcgo064ca6j49oex1ns8wjv9sxej7h
142807
142805
2026-06-25T13:57:57Z
آیات محراج
11062
/* */
142807
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|image=Terremoto en La Pastora.webm|caption=سی سی ٹی وی فوٗٹیج|map2={{Location map many | Venezuela
| relief = yes
| label1 =
| lat = 10.453
| long = -68.514
| mark = Bullseye1.png
| marksize = 50
| position = right
| width = 260
| float = center
|label2 = کاراکاس
|lat2 = 10.506
|long2 = -66.914
|mark2 = Red pog.svg
|mark2size = 10
|position2 = right
| caption = }}|local-date=24 June 2026|timestamp=2026-06-24 22:04:33|timestamp-A=2026-06-24 22:05:11|local-time=18:04:33 [[Time in Venezuela|VET]] ([[UTC-4]])|local-time-A=18:05:11 VET (UTC-4)|magnitude={{M|w|link=y|7.2}}|magnitude-A={{M|w|link=y|7.5}}|affected=[[وینَزوٗیِلا]]|location={{coord|10.435|N|68.472|W}}|intensity={{MMI|IX}}|tsunami=|landslide=|fault=|type=[[:en:Strike-slip fault|Strike-slip]]|damage=|foreshocks=|aftershocks=30|anss-url=us6000t7zc|anss-url-A=us6000t7zp|depth={{cvt|21.9|km|mi|0|abbr=on}}|depth-A={{cvt|10|km|mi|0|abbr=on}}|casualties=164+ موتھ، 1,000+ زخمی، 14,000+ لاپتا|isc-event=645903460|pga=|pgv=|duration=}}
{{multiple image
| header = USGS ShakeMaps of the M7.2 and M7.5 events
| width = 200px
| image1 = M 7.2 - 24 km ENE of San Felipe, Venezuela.png
| alt1 =
| caption1 =
| image2 = M 7.5 - 23 km SE of Yumare, Venezuela.png
| alt2 =
| caption2 =
}}
24 جوٗن 2026 ہس منٛز، دۄیو بٔڑۍ سٹرائیک سلپ بُنیُل کوٚر شمال مغربی تہٕ مرکزی [[وینَزوٗیِلا]] متٲثر۔ گۄڈنیُک بُنیُل، ییٚمیُک پیمٲئش Mw 7.2 اوس یاراکویَس منٛز 20 کلومیٹر (12 میٖل) سرٛنٮ۪رَس پیٹھ آمُت۔ یہِ بُنیُل آو 18:04 VET۔ یہِ آو پیش شَکہٕ کِس طورس پیٹھ درجہٕ بندی کرنہٕ، تہٕ امہِ پتہٕ آو 39 سیکنڈ پتہٕ Mw 7.5 بُنیُل۔بٔڑِس بُنیُلُک مرکز تہِ اوس یاراکویَس منٛز واقعہٕ۔ دۄشوٕے بُنِیلہِ سۭتۍ گوٚو پوٗرٕ مُلکَس منٛز بٔڑِس پیمانَس پٮ۪ٹھ نۄقصان، خاص پٲٹھۍ [[لا گویرا]] تہٕ دارالحکوٗمت [[کاراکاس|کاراکاسَس]] منٛز۔ کم از کم گٔیہِ 164 نفر ہلاک، 1,000 کھۄتہٕ زیٛادٕ زخمی تہٕ 14,000 کھۄتہٕ زیٛادٕ لاپتا گژھنٕچ اطلاع۔ یوٗ ایس جی ایسُک پیجر سسٹمَن چھُ پیشن گویی کران زِ مرنَن ہٕنٛدِس تعدادَس منٛز چھُ واریاہ ہُریرُک اِمکان۔ پتہٕ وول واقعہٕ چُھ وینزویلا ہس منز 1900 کہِ سان نارسیسو بُنلہِ پتہٕ ساروی کھوتہٕ بوٚڑ بُنیُل۔
12n36a0v675xx28gfvboeeor0u0le8c
142808
142807
2026-06-25T13:59:28Z
آیات محراج
11062
/* */
142808
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|image=Terremoto en La Pastora.webm|caption=سی سی ٹی وی فوٗٹیج|map2={{Location map many | Venezuela
| relief = yes
| label1 =
| lat = 10.453
| long = -68.514
| mark = Bullseye1.png
| marksize = 50
| position = right
| width = 260
| float = center
|label2 = کاراکاس
|lat2 = 10.506
|long2 = -66.914
|mark2 = Red pog.svg
|mark2size = 10
|position2 = right
| caption = }}|local-date=24 June 2026|timestamp=2026-06-24 22:04:33|timestamp-A=2026-06-24 22:05:11|local-time=18:04:33 [[Time in Venezuela|VET]] ([[UTC-4]])|local-time-A=18:05:11 VET (UTC-4)|magnitude={{M|w|link=y|7.2}}|magnitude-A={{M|w|link=y|7.5}}|affected=[[وینَزوٗیِلا]]|location={{coord|10.435|N|68.472|W}}|intensity={{MMI|IX}}|tsunami=|landslide=|fault=|type=[[:en:Strike-slip fault|Strike-slip]]|damage=|foreshocks=|aftershocks=30|anss-url=us6000t7zc|anss-url-A=us6000t7zp|depth={{cvt|21.9|km|mi|0|abbr=on}}|depth-A={{cvt|10|km|mi|0|abbr=on}}|casualties=164+ موتھ، 1,000+ زخمی، 14,000+ لاپتا|isc-event=645903460|pga=|pgv=|duration=}}
{{multiple image
| header = USGS ShakeMaps of the M7.2 and M7.5 events
| width = 200px
| image1 = M 7.2 - 24 km ENE of San Felipe, Venezuela.png
| alt1 =
| caption1 =
| image2 = M 7.5 - 23 km SE of Yumare, Venezuela.png
| alt2 =
| caption2 =
}}
24 جوٗن 2026 ہس منٛز، دۄیو بٔڑۍ سٹرائیک سلپ بُنیُل کوٚر شمال مغربی تہٕ مرکزی [[وینَزوٗیِلا]] متٲثر۔ گۄڈنیُک بُنیُل، ییٚمیُک پیمٲئش Mw 7.2 اوس یاراکویَس منٛز 20 کلومیٹر (12 میٖل) سرٛنٮ۪رَس پیٹھ آمُت۔ یہِ بُنیُل آو 18:04 VET۔ یہِ آو پیش شَکہٕ کِس طورس پیٹھ درجہٕ بندی کرنہٕ، تہٕ امہِ پتہٕ آو 39 سیکنڈ پتہٕ Mw 7.5 بُنیُل۔بٔڑِس بُنیُلُک مرکز تہِ اوس یاراکویَس منٛز واقعہٕ۔ دۄشوٕے بُنِیلہِ سۭتۍ گوٚو پوٗرٕ مُلکَس منٛز بٔڑِس پیمانَس پٮ۪ٹھ نۄقصان، خاص پٲٹھۍ [[لا گویرا]] تہٕ دارالحکوٗمت [[کاراکاس|کاراکاسَس]] منٛز۔ کم از کم گٔیہِ 164 نفر ہلاک، 1,000 کھۄتہٕ زیٛادٕ زخمی تہٕ 14,000 کھۄتہٕ زیٛادٕ لاپتا گژھنٕچ اطلاع۔ یوٗ ایس جی ایسُک پیجر سسٹمَن چھُ پیشن گویی کران زِ مرنَن ہٕنٛدِس تعدادَس منٛز چھُ واریاہ ہُریرُک اِمکان۔<ref>{{cite web |title=PAGER Scientific Background |url=https://earthquake.usgs.gov/data/pager/background.php |publisher=United States Geological Survey |access-date=25 June 2026 |archive-date=14 March 2026 |archive-url=https://web.archive.org/web/20260314172339/https://earthquake.usgs.gov/data/pager/background.php |url-status=live }}</ref> پتہٕ وول واقعہٕ چُھ وینزویلا ہس منز 1900 کہِ سان نارسیسو بُنلہِ پتہٕ ساروی کھوتہٕ بوٚڑ بُنیُل۔
dcly8ryoi4xwzwpdequwz4meh2u1lys
142809
142808
2026-06-25T14:00:51Z
آیات محراج
11062
+[[زٲژ:2026 واقعات]]; +[[زٲژ:وینَزوٗیِلا]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
142809
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|image=Terremoto en La Pastora.webm|caption=سی سی ٹی وی فوٗٹیج|map2={{Location map many | Venezuela
| relief = yes
| label1 =
| lat = 10.453
| long = -68.514
| mark = Bullseye1.png
| marksize = 50
| position = right
| width = 260
| float = center
|label2 = کاراکاس
|lat2 = 10.506
|long2 = -66.914
|mark2 = Red pog.svg
|mark2size = 10
|position2 = right
| caption = }}|local-date=24 June 2026|timestamp=2026-06-24 22:04:33|timestamp-A=2026-06-24 22:05:11|local-time=18:04:33 [[Time in Venezuela|VET]] ([[UTC-4]])|local-time-A=18:05:11 VET (UTC-4)|magnitude={{M|w|link=y|7.2}}|magnitude-A={{M|w|link=y|7.5}}|affected=[[وینَزوٗیِلا]]|location={{coord|10.435|N|68.472|W}}|intensity={{MMI|IX}}|tsunami=|landslide=|fault=|type=[[:en:Strike-slip fault|Strike-slip]]|damage=|foreshocks=|aftershocks=30|anss-url=us6000t7zc|anss-url-A=us6000t7zp|depth={{cvt|21.9|km|mi|0|abbr=on}}|depth-A={{cvt|10|km|mi|0|abbr=on}}|casualties=164+ موتھ، 1,000+ زخمی، 14,000+ لاپتا|isc-event=645903460|pga=|pgv=|duration=}}
{{multiple image
| header = USGS ShakeMaps of the M7.2 and M7.5 events
| width = 200px
| image1 = M 7.2 - 24 km ENE of San Felipe, Venezuela.png
| alt1 =
| caption1 =
| image2 = M 7.5 - 23 km SE of Yumare, Venezuela.png
| alt2 =
| caption2 =
}}
24 جوٗن 2026 ہس منٛز، دۄیو بٔڑۍ سٹرائیک سلپ بُنیُل کوٚر شمال مغربی تہٕ مرکزی [[وینَزوٗیِلا]] متٲثر۔ گۄڈنیُک بُنیُل، ییٚمیُک پیمٲئش Mw 7.2 اوس یاراکویَس منٛز 20 کلومیٹر (12 میٖل) سرٛنٮ۪رَس پیٹھ آمُت۔ یہِ بُنیُل آو 18:04 VET۔ یہِ آو پیش شَکہٕ کِس طورس پیٹھ درجہٕ بندی کرنہٕ، تہٕ امہِ پتہٕ آو 39 سیکنڈ پتہٕ Mw 7.5 بُنیُل۔بٔڑِس بُنیُلُک مرکز تہِ اوس یاراکویَس منٛز واقعہٕ۔ دۄشوٕے بُنِیلہِ سۭتۍ گوٚو پوٗرٕ مُلکَس منٛز بٔڑِس پیمانَس پٮ۪ٹھ نۄقصان، خاص پٲٹھۍ [[لا گویرا]] تہٕ دارالحکوٗمت [[کاراکاس|کاراکاسَس]] منٛز۔ کم از کم گٔیہِ 164 نفر ہلاک، 1,000 کھۄتہٕ زیٛادٕ زخمی تہٕ 14,000 کھۄتہٕ زیٛادٕ لاپتا گژھنٕچ اطلاع۔ یوٗ ایس جی ایسُک پیجر سسٹمَن چھُ پیشن گویی کران زِ مرنَن ہٕنٛدِس تعدادَس منٛز چھُ واریاہ ہُریرُک اِمکان۔<ref>{{cite web |title=PAGER Scientific Background |url=https://earthquake.usgs.gov/data/pager/background.php |publisher=United States Geological Survey |access-date=25 June 2026 |archive-date=14 March 2026 |archive-url=https://web.archive.org/web/20260314172339/https://earthquake.usgs.gov/data/pager/background.php |url-status=live }}</ref> پتہٕ وول واقعہٕ چُھ وینزویلا ہس منز 1900 کہِ سان نارسیسو بُنلہِ پتہٕ ساروی کھوتہٕ بوٚڑ بُنیُل۔
==حَوالہٕ==
[[زٲژ:2026 واقعات]]
[[زٲژ:وینَزوٗیِلا]]
230my9arnz7w4hrx7hxg4tixespd65a
142810
142809
2026-06-25T14:03:34Z
آیات محراج
11062
142810
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|image=Terremoto en La Pastora.webm|caption=سی سی ٹی وی فوٗٹیج|map2={{Location map many | Venezuela
| relief = yes
| label1 =
| lat = 10.453
| long = -68.514
| mark = Bullseye1.png
| marksize = 50
| position = right
| width = 260
| float = center
|label2 = کاراکاس
|lat2 = 10.506
|long2 = -66.914
|mark2 = Red pog.svg
|mark2size = 10
|position2 = right
| caption = }}|local-date=24 June 2026|timestamp=2026-06-24 22:04:33|timestamp-A=2026-06-24 22:05:11|local-time=18:04:33 [[Time in Venezuela|VET]] ([[UTC-4]])|local-time-A=18:05:11 VET (UTC-4)|magnitude={{M|w|link=y|7.2}}|magnitude-A={{M|w|link=y|7.5}}|affected=[[وینَزوٗیِلا]]|location={{coord|10.435|N|68.472|W}}|intensity={{MMI|IX}}|tsunami=|landslide=|fault=|type=[[:en:Strike-slip fault|Strike-slip]]|damage=|foreshocks=|aftershocks=30|anss-url=us6000t7zc|anss-url-A=us6000t7zp|depth={{cvt|21.9|km|mi|0|abbr=on}}|depth-A={{cvt|10|km|mi|0|abbr=on}}|casualties=164+ موتھ، 1,000+ زخمی، 14,000+ لاپتا|isc-event=645903460|pga=|pgv=|duration=}}
{{multiple image
| header = USGS ShakeMaps of the M7.2 and M7.5 events
| width = 200px
| image1 = M 7.2 - 24 km ENE of San Felipe, Venezuela.png
| alt1 =
| caption1 =
| image2 = M 7.5 - 23 km SE of Yumare, Venezuela.png
| alt2 =
| caption2 =
}}
24 جوٗن 2026 ہس منٛز، دۄیو بٔڑۍ سٹرائیک سلپ بُنیُل کوٚر شمال مغربی تہٕ مرکزی [[وینَزوٗیِلا]] متٲثر۔ گۄڈنیُک بُنیُل، ییٚمیُک پیمٲئش Mw 7.2 اوس یاراکویَس منٛز 20 کلومیٹر (12 میٖل) سرٛنٮ۪رَس پیٹھ آمُت۔ یہِ بُنیُل آو 18:04 VET۔ یہِ آو پیش شَکہٕ کِس طورس پیٹھ درجہٕ بندی کرنہٕ، تہٕ امہِ پتہٕ آو 39 سیکنڈ پتہٕ Mw 7.5 بُنیُل۔بٔڑِس بُنیُلُک مرکز تہِ اوس یاراکویَس منٛز واقعہٕ۔ دۄشوٕے بُنِیلہِ سۭتۍ گوٚو پوٗرٕ مُلکَس منٛز بٔڑِس پیمانَس پٮ۪ٹھ نۄقصان، خاص پٲٹھۍ [[لا گویرا]] تہٕ دارالحکوٗمت [[کاراکاس|کاراکاسَس]] منٛز۔ کم از کم گٔیہِ 164 نفر ہلاک، 1,000 کھۄتہٕ زیٛادٕ زخمی تہٕ 14,000 کھۄتہٕ زیٛادٕ لاپتا گژھنٕچ اطلاع۔ یوٗ ایس جی ایسُک پیجر سسٹمَن چھُ پیشن گویی کران زِ مرنَن ہٕنٛدِس تعدادَس منٛز چھُ واریاہ ہُریرُک اِمکان۔<ref>{{cite web |title=PAGER Scientific Background |url=https://earthquake.usgs.gov/data/pager/background.php |publisher=United States Geological Survey |access-date=25 June 2026 |archive-date=14 March 2026 |archive-url=https://web.archive.org/web/20260314172339/https://earthquake.usgs.gov/data/pager/background.php |url-status=live }}</ref> پتہٕ وول واقعہٕ چُھ وینزویلا ہس منز 1900 کہِ سان نارسیسو بُنلہِ پتہٕ ساروی کھوتہٕ بوٚڑ بُنیُل۔
==بیٚیہِ وُچھِو==
[[2026 مِنٛڈاناو بُنیُل]]
==حَوالہٕ==
[[زٲژ:2026 واقعات]]
[[زٲژ:وینَزوٗیِلا]]
nk23d33vm7bb3p9q33lun7sgm6xo5nl
142838
142810
2026-06-25T18:00:30Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142838
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|image=Terremoto en La Pastora.webm|caption=سی سی ٹی وی فوٗٹیج|map2={{Location map many | Venezuela
| relief = yes
| label1 =
| lat = 10.453
| long = -68.514
| mark = Bullseye1.png
| marksize = 50
| position = right
| width = 260
| float = center
|label2 = کاراکاس
|lat2 = 10.506
|long2 = -66.914
|mark2 = Red pog.svg
|mark2size = 10
|position2 = right
| caption = }}|local-date=24 June 2026|timestamp=2026-06-24 22:04:33|timestamp-A=2026-06-24 22:05:11|local-time=18:04:33 [[Time in Venezuela|VET]] ([[UTC-4]])|local-time-A=18:05:11 VET (UTC-4)|magnitude={{M|w|link=y|7.2}}|magnitude-A={{M|w|link=y|7.5}}|affected=[[وینَزوٗیِلا]]|location={{coord|10.435|N|68.472|W}}|intensity={{MMI|IX}}|tsunami=|landslide=|fault=|type=[[:en:Strike-slip fault|Strike-slip]]|damage=|foreshocks=|aftershocks=30|anss-url=us6000t7zc|anss-url-A=us6000t7zp|depth={{cvt|21.9|km|mi|0|abbr=on}}|depth-A={{cvt|10|km|mi|0|abbr=on}}|casualties=164+ موتھ، 1,000+ زخمی، 14,000+ لاپتا|isc-event=645903460|pga=|pgv=|duration=}}
{{multiple image
| header = USGS ShakeMaps of the M7.2 and M7.5 events
| width = 200px
| image1 = M 7.2 - 24 km ENE of San Felipe, Venezuela.png
| alt1 =
| caption1 =
| image2 = M 7.5 - 23 km SE of Yumare, Venezuela.png
| alt2 =
| caption2 =
}}
24 جوٗن 2026 ہس مَنٛز، دۄیو بٔڑؠ سٹرایک سلپ بُنیُل کوٚر شمال مغربی تہٕ مرکزی [[وینَزوٗیِلا]] متٲثر۔ گۄڈنیُک بُنیُل، ییٚمیُک پیمٲیش Mw 7.2 اوس یاراکویَس مَنٛز 20 کلومیٹر (12 میٖل) سرٛنؠرَس پؠٹھ آمُت۔ یہِ بُنیُل آو 18:04 VET۔ یہِ آو پیش شَکہٕ کِس طورس پؠٹھ درجہٕ بندی کرنہٕ، تہٕ امہِ پتہٕ آو 39 سیکنڈ پتہٕ Mw 7.5 بُنیُل۔بٔڑِس بُنیُلُک مرکز تہِ اوس یاراکویَس مَنٛز واقعہٕ۔ دۄشوٕے بُنِیلہِ سٟتؠ گوٚو پوٗرٕ مُلکَس مَنٛز بٔڑِس پیمانَس پؠٹھ نۄقصان، خاص پٲٹھؠ [[لا گویرا]] تہٕ رازدٲنؠ [[کاراکاس|کاراکاسَس]] مَنٛز۔ کم از کم گٔیہِ 164 نفر ہلاک، 1,000 کھۄتہٕ زیٛادٕ زخمی تہٕ 14,000 کھۄتہٕ زیٛادٕ لاپتا گژھنٕچ اطلاع۔ یوٗ ایس جی ایسُک پیجر سسٹمَن چھُ پیشن گویی کران زِ مرنَن ہٕنٛدِس تعدادَس مَنٛز چھُ واریاہ ہُریرُک اِمکان۔<ref>{{cite web |title=PAGER Scientific Background |url=https://earthquake.usgs.gov/data/pager/background.php |publisher=United States Geological Survey |access-date=25 June 2026 |archive-date=14 March 2026 |archive-url=https://web.archive.org/web/20260314172339/https://earthquake.usgs.gov/data/pager/background.php |url-status=live }}</ref> پتہٕ وول واقعہٕ چھُ وینزویلا ہس مَنٛز 1900 کہِ سان نارسیسو بُنلہِ پتہٕ سارِوٕے کھۄتہٕ بوٚڑ بُنیُل۔
==بیٚیہِ وُچھِو==
[[2026 مِنٛڈاناو بُنیُل]]
==حَوالہٕ==
[[زٲژ:2026 واقعات]]
[[زٲژ:وینَزوٗیِلا]]
bpud867b1mx3q0xpekzxudtnapjtnlu
142908
142838
2026-06-26T06:21:44Z
آیات محراج
11062
/* */ Statics updated
142908
wikitext
text/x-wiki
{{بٕنیُل معلوٗمات ڈَبہٕ|image=Terremoto en La Pastora.webm|caption=سی سی ٹی وی فوٗٹیج|map2={{Location map many | Venezuela
| relief = yes
| label1 =
| lat = 10.453
| long = -68.514
| mark = Bullseye1.png
| marksize = 50
| position = right
| width = 260
| float = center
|label2 = کاراکاس
|lat2 = 10.506
|long2 = -66.914
|mark2 = Red pog.svg
|mark2size = 10
|position2 = right
| caption = }}|local-date=24 June 2026|timestamp=2026-06-24 22:04:33|timestamp-A=2026-06-24 22:05:11|local-time=18:04:33 [[Time in Venezuela|VET]] ([[UTC-4]])|local-time-A=18:05:11 VET (UTC-4)|magnitude={{M|w|link=y|7.2}}|magnitude-A={{M|w|link=y|7.5}}|affected=[[وینَزوٗیِلا]]|location={{coord|10.435|N|68.472|W}}|intensity={{MMI|IX}}|tsunami=|landslide=|fault=|type=[[:en:Strike-slip fault|Strike-slip]]|damage=|foreshocks=|aftershocks=30|anss-url=us6000t7zc|anss-url-A=us6000t7zp|depth={{cvt|21.9|km|mi|0|abbr=on}}|depth-A={{cvt|10|km|mi|0|abbr=on}}|casualties=235+ موتھ، 4,300+ زخمی، 40,000+ لاپتا|isc-event=645903460|pga=|pgv=|duration=}}
{{multiple image
| header = USGS ShakeMaps of the M7.2 and M7.5 events
| width = 200px
| image1 = M 7.2 - 24 km ENE of San Felipe, Venezuela.png
| alt1 =
| caption1 =
| image2 = M 7.5 - 23 km SE of Yumare, Venezuela.png
| alt2 =
| caption2 =
}}
24 جوٗن 2026 ہس مَنٛز، دۄیو بٔڑؠ سٹرایک سلپ بُنیُل کوٚر شمال مغربی تہٕ مرکزی [[وینَزوٗیِلا]] متٲثر۔ گۄڈنیُک بُنیُل، ییٚمیُک پیمٲیش Mw 7.2 اوس یاراکویَس مَنٛز 20 کلومیٹر (12 میٖل) سرٛنؠرَس پؠٹھ آمُت۔ یہِ بُنیُل آو 18:04 VET۔ یہِ آو پیش شَکہٕ کِس طورس پؠٹھ درجہٕ بندی کرنہٕ، تہٕ امہِ پتہٕ آو 39 سیکنڈ پتہٕ Mw 7.5 بُنیُل۔بٔڑِس بُنیُلُک مرکز تہِ اوس یاراکویَس مَنٛز واقعہٕ۔ دۄشوٕے بُنِیلہِ سٟتؠ گوٚو پوٗرٕ مُلکَس مَنٛز بٔڑِس پیمانَس پؠٹھ نۄقصان، خاص پٲٹھؠ [[لا گویرا]] تہٕ رازدٲنؠ [[کاراکاس|کاراکاسَس]] مَنٛز۔ کم از کم گٔیہِ 235 نفر ہلاک، 4,300 کھۄتہٕ زیٛادٕ زخمی تہٕ 40,000 کھۄتہٕ زیٛادٕ لاپتا گژھنٕچ اطلاع۔ یوٗ ایس جی ایسُک پیجر سسٹمَن چھُ پیشن گویی کران زِ مرنَن ہٕنٛدِس تعدادَس مَنٛز چھُ واریاہ ہُریرُک اِمکان۔<ref>{{cite web |title=PAGER Scientific Background |url=https://earthquake.usgs.gov/data/pager/background.php |publisher=United States Geological Survey |access-date=25 June 2026 |archive-date=14 March 2026 |archive-url=https://web.archive.org/web/20260314172339/https://earthquake.usgs.gov/data/pager/background.php |url-status=live }}</ref> پتہٕ وول واقعہٕ چھُ وینزویلا ہس مَنٛز 1900 کہِ سان نارسیسو بُنلہِ پتہٕ سارِوٕے کھۄتہٕ بوٚڑ بُنیُل۔
==بیٚیہِ وُچھِو==
[[2026 مِنٛڈاناو بُنیُل]]
==حَوالہٕ==
[[زٲژ:2026 واقعات]]
[[زٲژ:وینَزوٗیِلا]]
aqlou5cnzn5bm6pqb7b16o4r8xeu1s6
Module:Location map/data/Venezuela
828
31093
142806
2026-06-25T13:57:29Z
آیات محراج
11062
Created page with "return { name = 'وینَنزیوٗیِلا', top = 12.8, bottom = 0.4, left = -73.6, right = -58.0, image = 'Venezuela adm location map (+claimed).svg', image1 = 'Venezuela relief location map (+claimed).svg' }"
142806
Scribunto
text/plain
return {
name = 'وینَنزیوٗیِلا',
top = 12.8,
bottom = 0.4,
left = -73.6,
right = -58.0,
image = 'Venezuela adm location map (+claimed).svg',
image1 = 'Venezuela relief location map (+claimed).svg'
}
ria7mjxbzhpcersfvcwyobfkl7ekqx3
لا گوایرا
0
31094
142812
2026-06-25T14:29:07Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1361049057|La Guaira]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142812
wikitext
text/x-wiki
'''لا گوایرا''' چُھ [[وینَزوٗیِلا]] کہِ ناو کہِ ریاست (گوڈٕ ورگاس وننہٕ یوان) تہٕ ملکُک مرکزی بندرگاہ، یمٕچ بنیاد 1577 منٛز نزدیکی [[کاراکاس]] کہِ آؤٹ لیٹ کس طورس پیٹھ تھاونہٕ آو۔
m2qayzpw6vboigybehi4bwy229f0gi8
142814
142812
2026-06-25T14:31:12Z
آیات محراج
11062
/* */
142814
wikitext
text/x-wiki
{{Infobox political geography}}
'''لا گوایرا''' چُھ [[وینَزوٗیِلا]] کہِ ناو کہِ ریاست (گوڈٕ ورگاس وننہٕ یوان) تہٕ ملکُک مرکزی بندرگاہ، یمٕچ بنیاد 1577 منٛز نزدیکی [[کاراکاس]] کہِ آؤٹ لیٹ کس طورس پیٹھ تھاونہٕ آو۔
8cgisa333xrh2w7tbtuse6fvz8c0tvo
142815
142814
2026-06-25T14:32:43Z
آیات محراج
11062
142815
wikitext
text/x-wiki
{{Infobox political geography}}
'''لا گوایرا''' چُھ [[وینَزوٗیِلا]] کہِ ناو کہِ ریاست (گوڈٕ ورگاس وننہٕ یوان) تہٕ ملکُک مرکزی بندرگاہ، یمٕچ بنیاد 1577 منٛز نزدیکی [[کاراکاس]] کہِ آؤٹ لیٹ کس طورس پیٹھ تھاونہٕ آو۔<ref>{{cite web|date=2 September 2011|title=War of 1812: UK sources for Privateers|url=http://www.1812privateers.org/Great+Britain/Rachel.htm|url-status=dead|archive-url=https://web.archive.org/web/20110902205119/http://www.1812privateers.org/Great%20Britain/Rachel.htm|archive-date=2 September 2011|access-date=15 October 2017}}</ref>
== تَصویٖر ==
[[File:Picacho_de_Galipan.jpg|thumb|left|''Picacho de Galipán'']]
[[File:MS Monarch - Caribbean Cruise - Venezuela (15039875274).jpg|thumb|left|Port of La Guaira]]
[[File:Litoral Central.JPG|thumb|right|La Guaira]]
[[File:Vargas01.JPG|thumb|left|Beach in la Guaira]]
[[Image:Fuerte_San_Carlos_La_Guaira.jpg|thumb|150px|left|San Carlos Fortress]]
== حَوالہٕ ==
2bwl91qax9tcnj1us1o90kbrkvpv8yq
142816
142815
2026-06-25T14:33:26Z
آیات محراج
11062
مِلاوُن [[زٲژ:وینَزوٗیِلا]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
142816
wikitext
text/x-wiki
{{Infobox political geography}}
'''لا گوایرا''' چُھ [[وینَزوٗیِلا]] کہِ ناو کہِ ریاست (گوڈٕ ورگاس وننہٕ یوان) تہٕ ملکُک مرکزی بندرگاہ، یمٕچ بنیاد 1577 منٛز نزدیکی [[کاراکاس]] کہِ آؤٹ لیٹ کس طورس پیٹھ تھاونہٕ آو۔<ref>{{cite web|date=2 September 2011|title=War of 1812: UK sources for Privateers|url=http://www.1812privateers.org/Great+Britain/Rachel.htm|url-status=dead|archive-url=https://web.archive.org/web/20110902205119/http://www.1812privateers.org/Great%20Britain/Rachel.htm|archive-date=2 September 2011|access-date=15 October 2017}}</ref>
== تَصویٖر ==
[[File:Picacho_de_Galipan.jpg|thumb|left|''Picacho de Galipán'']]
[[File:MS Monarch - Caribbean Cruise - Venezuela (15039875274).jpg|thumb|left|Port of La Guaira]]
[[File:Litoral Central.JPG|thumb|right|La Guaira]]
[[File:Vargas01.JPG|thumb|left|Beach in la Guaira]]
[[Image:Fuerte_San_Carlos_La_Guaira.jpg|thumb|150px|left|San Carlos Fortress]]
== حَوالہٕ ==
[[زٲژ:وینَزوٗیِلا]]
nl4lecgd83lee3nplnrv45z815gczvk
142837
142816
2026-06-25T18:00:25Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142837
wikitext
text/x-wiki
{{Infobox political geography}}
'''لا گوایرا''' چھُ [[وینَزوٗیِلا]] کہِ ناو کہِ رِیاسَتھ (گوڈٕ ورگاس وننہٕ یوان) تہٕ ملکُک مرکزی بندرگاہ، یمٕچ بنیاد 1577 مَنٛز نزدیکی [[کاراکاس]] کہِ آؤٹ لیٹ کس طورس پؠٹھ تھاونہٕ آو۔<ref>{{cite web|date=2 September 2011|title=War of 1812: UK sources for Privateers|url=http://www.1812privateers.org/Great+Britain/Rachel.htm|url-status=dead|archive-url=https://web.archive.org/web/20110902205119/http://www.1812privateers.org/Great%20Britain/Rachel.htm|archive-date=2 September 2011|access-date=15 October 2017}}</ref>
== تَصویٖر ==
[[File:Picacho_de_Galipan.jpg|thumb|left|''Picacho de Galipán'']]
[[File:MS Monarch - Caribbean Cruise - Venezuela (15039875274).jpg|thumb|left|Port of La Guaira]]
[[File:Litoral Central.JPG|thumb|right|La Guaira]]
[[File:Vargas01.JPG|thumb|left|Beach in la Guaira]]
[[Image:Fuerte_San_Carlos_La_Guaira.jpg|thumb|150px|left|San Carlos Fortress]]
== حَوالہٕ ==
[[زٲژ:وینَزوٗیِلا]]
nsz2eq0mvyh373b91b88qq0cv6e905r
لا گویرا
0
31095
142813
2026-06-25T14:29:20Z
آیات محراج
11062
رَجوٗع مُکَرر تَخلیٖق کَران
142813
wikitext
text/x-wiki
#REDIRECT [[لا_گوایرا]]
ecjbuuess914odtxffl2yqq9wqqqtad
ایٚلن گرٛیٖنسِپین
0
31096
142825
2026-06-25T15:46:57Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1361074449|Alan Greenspan]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142825
wikitext
text/x-wiki
'''ایلن گرینسپین''' (6 مارچ 1926 - 22 جوٗن 2026) اوس اکھ امریکی ماہر اقتصادیات یمۍ 1987 پیٹھ 2006 تام [[فیڈرل ریزروُک چییَرمین|فیڈرل ریزرو]] کِس 13 مہٕ چیئر کس طورس پیٹھ خدمات انجام دژ۔ تٔمۍ کٔر أکِس پرائیویٹ ایڈوائزر سٕنٛدِ حثیتہٕ کٲم تہٕ کٔرٕن پننہِ کمپنی، گرین اسپین ایسوسی ایٹس ایل ایل سی ذٔریعہٕ فرمَن خٲطرٕ مشورٕ فراہم۔
tpwvovb7927amndry39klrahoqhrp79
142826
142825
2026-06-25T15:53:41Z
آیات محراج
11062
/* */
142826
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''ایلن گرینسپین''' (6 مارچ 1926 - 22 جوٗن 2026) اوس اکھ امریکی ماہر اقتصادیات یمۍ 1987 پیٹھ 2006 تام [[فیڈرل ریزروُک چییَرمین|فیڈرل ریزرو]] کِس 13 مہٕ چیئر کس طورس پیٹھ خدمات انجام دژ۔ تٔمۍ کٔر أکِس پرائیویٹ ایڈوائزر سٕنٛدِ حثیتہٕ کٲم تہٕ کٔرٕن پننہِ کمپنی، گرین اسپین ایسوسی ایٹس ایل ایل سی ذٔریعہٕ فرمَن خٲطرٕ مشورٕ فراہم۔
== موتھ ==
گرٛیٖنسِپین گُزریو 22 جوٗن 2026 [[واشِنٛگٹَن ڈی سی]] منٛز پننِس گَرَس منٛز [[پارکنسن بؠمٲرؠ|پارکنسن بیمارِ]] ہٕنٛزِ پیچیدگی سۭتۍ 100 ؤری وٲنسہِ۔ تٔمۍ سٕنٛدٕ مرنہٕ پتہٕ، [[فیڈرل ریزرو|فیڈرل ریزروہن]] کوٚر گرٛیٖنسِپین یاد: "تٔمۍ سٕنٛزٕ قیادتس منٛز، فیڈرل ریزرو کٔر قٲمتٕک استحکامُک اکھ مستقل دور حٲصل ییٚمہِ معاشی ترقی ہنٛز حمایت کٔر تہٕ ادارس پیٹھ عوامک اعتمادس لنگر کرنس منٛز مدد کٔر"۔
apojqi18zsgu4y4bnvun3atu53ja3d6
142827
142826
2026-06-25T15:54:11Z
آیات محراج
11062
/* */
142827
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''ایلن گرینسپین''' (6 مارچ 1926 - 22 جوٗن 2026) اوس اکھ امریکی ماہر اقتصادیات یمۍ 1987 پیٹھ 2006 تام [[فیڈرل ریزروُک چییَرمین|فیڈرل ریزرو]] کِس 13 مہٕ چیئر کس طورس پیٹھ خدمات انجام دژ۔ تٔمۍ کٔر أکِس پرائیویٹ ایڈوائزر سٕنٛدِ حثیتہٕ کٲم تہٕ کٔرٕن پننہِ کمپنی، گرٛیٖنسِپین ایسوسی ایٹس ایل ایل سی ذٔریعہٕ فرمَن خٲطرٕ مشورٕ فراہم۔
== موتھ ==
گرٛیٖنسِپین گُزریو 22 جوٗن 2026 [[واشِنٛگٹَن ڈی سی]] منٛز پننِس گَرَس منٛز [[پارکنسن بؠمٲرؠ|پارکنسن بیمارِ]] ہٕنٛزِ پیچیدگی سۭتۍ 100 ؤری وٲنسہِ۔ تٔمۍ سٕنٛدٕ مرنہٕ پتہٕ، [[فیڈرل ریزرو|فیڈرل ریزروہن]] کوٚر گرٛیٖنسِپین یاد: "تٔمۍ سٕنٛزٕ قیادتس منٛز، فیڈرل ریزرو کٔر قٲمتٕک استحکامُک اکھ مستقل دور حٲصل ییٚمہِ معاشی ترقی ہنٛز حمایت کٔر تہٕ ادارس پیٹھ عوامک اعتمادس لنگر کرنس منٛز مدد کٔر"۔
p2s86h76yhl1xtqb4gms1o952ebozyt
142830
142827
2026-06-25T16:01:17Z
آیات محراج
11062
+[[زٲژ:اَمریٖکی لوٗکھ]]; +[[زٲژ:1926 پٲدٲیِش]]; +[[زٲژ:2026 وَفات]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
142830
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''ایلن گرینسپین''' (6 مارچ 1926 - 22 جوٗن 2026) اوس اکھ امریکی ماہر اقتصادیات یمۍ 1987 پیٹھ 2006 تام [[فیڈرل ریزروُک چییَرمین|فیڈرل ریزرو]] کِس 13 مہٕ چیئر کس طورس پیٹھ خدمات انجام دژ۔ تٔمۍ کٔر أکِس پرائیویٹ ایڈوائزر سٕنٛدِ حثیتہٕ کٲم تہٕ کٔرٕن پننہِ کمپنی، گرٛیٖنسِپین ایسوسی ایٹس ایل ایل سی ذٔریعہٕ فرمَن خٲطرٕ مشورٕ فراہم۔
== موتھ ==
گرٛیٖنسِپین گُزریو 22 جوٗن 2026 [[واشِنٛگٹَن ڈی سی]] منٛز پننِس گَرَس منٛز [[پارکنسن بؠمٲرؠ|پارکنسن بیمارِ]] ہٕنٛزِ پیچیدگی سۭتۍ 100 ؤری وٲنسہِ۔ تٔمۍ سٕنٛدٕ مرنہٕ پتہٕ، [[فیڈرل ریزرو|فیڈرل ریزروہن]] کوٚر گرٛیٖنسِپین یاد: "تٔمۍ سٕنٛزٕ قیادتس منٛز، فیڈرل ریزرو کٔر قٲمتٕک استحکامُک اکھ مستقل دور حٲصل ییٚمہِ معاشی ترقی ہنٛز حمایت کٔر تہٕ ادارس پیٹھ عوامک اعتمادس لنگر کرنس منٛز مدد کٔر"۔<ref>{{Cite web |date=June 22, 2026 |title=Federal Reserve notes with deep sadness the passing of Alan Greenspan |url=https://www.federalreserve.gov/newsevents/pressreleases/other20260622a.htm |access-date=June 23, 2026 |website=Board of Governors of the Federal Reserve System |archive-date=June 22, 2026 |archive-url=https://web.archive.org/web/20260622192458/https://www.federalreserve.gov/newsevents/pressreleases/other20260622a.htm |url-status=live }}</ref>
==حَوالہٕ==
[[زٲژ:اَمریٖکی لوٗکھ]]
[[زٲژ:1926 پٲدٲیِش]]
[[زٲژ:2026 وَفات]]
dygadqwcks47mo4vga15g8ti8rzp7ec
142831
142830
2026-06-25T16:02:44Z
آیات محراج
11062
/* */
142831
wikitext
text/x-wiki
{{Infobox officeholder/Wikidata|noicon=Yes}}
'''ایٚلن گرٛیٖنسِپین''' (6 مارچ 1926 - 22 جوٗن 2026) اوس اکھ امریکی ماہر اقتصادیات یمۍ 1987 پیٹھ 2006 تام [[فیڈرل ریزروُک چییَرمین|فیڈرل ریزرو]] کِس 13 مہٕ چیئر کس طورس پیٹھ خدمات انجام دژ۔ تٔمۍ کٔر أکِس پرائیویٹ ایڈوائزر سٕنٛدِ حثیتہٕ کٲم تہٕ کٔرٕن پننہِ کمپنی، گرٛیٖنسِپین ایسوسی ایٹس ایل ایل سی ذٔریعہٕ فرمَن خٲطرٕ مشورٕ فراہم۔
== موتھ ==
گرٛیٖنسِپین گُزریو 22 جوٗن 2026 [[واشِنٛگٹَن ڈی سی]] منٛز پننِس گَرَس منٛز [[پارکنسن بؠمٲرؠ|پارکنسن بیمارِ]] ہٕنٛزِ پیچیدگی سۭتۍ 100 ؤری وٲنسہِ۔ تٔمۍ سٕنٛدٕ مرنہٕ پتہٕ، [[فیڈرل ریزرو|فیڈرل ریزروہن]] کوٚر گرٛیٖنسِپین یاد: "تٔمۍ سٕنٛزٕ قیادتس منٛز، فیڈرل ریزرو کٔر قٲمتٕک استحکامُک اکھ مستقل دور حٲصل ییٚمہِ معاشی ترقی ہنٛز حمایت کٔر تہٕ ادارس پیٹھ عوامک اعتمادس لنگر کرنس منٛز مدد کٔر"۔<ref>{{Cite web |date=June 22, 2026 |title=Federal Reserve notes with deep sadness the passing of Alan Greenspan |url=https://www.federalreserve.gov/newsevents/pressreleases/other20260622a.htm |access-date=June 23, 2026 |website=Board of Governors of the Federal Reserve System |archive-date=June 22, 2026 |archive-url=https://web.archive.org/web/20260622192458/https://www.federalreserve.gov/newsevents/pressreleases/other20260622a.htm |url-status=live }}</ref>
==حَوالہٕ==
[[زٲژ:اَمریٖکی لوٗکھ]]
[[زٲژ:1926 پٲدٲیِش]]
[[زٲژ:2026 وَفات]]
in1kpqod11cyj4kqstwm0cwd3izwiy7
142835
142831
2026-06-25T18:00:15Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
142835
wikitext
text/x-wiki
{{Infobox officeholder/Wikidata|noicon=Yes}}
'''ایٚلن گرٛیٖنسِپین''' (6 مارٕچ 1926 - 22 جوٗن 2026) اوس اَکھ امریکی ماہر اقتصادیات یمؠ 1987 پؠٹھ 2006 تام [[فیڈرل ریزروُک چییَرمین|فیڈرل ریزرو]] کِس 13 مہٕ چییَر کس طورس پؠٹھ خدمات انجام دژ۔ تٔمؠ کٔر أکِس پرایویٹ ایڈوایزر سٕنٛدِ حثیتہٕ کٲم تہٕ کٔرٕن پننہِ کمپنی، گرٛیٖنسِپین ایسوسی ایٹس ایل ایل سی ذٔریعہٕ فرمَن خٲطرٕ مشورٕ فراہم۔
== موتھ ==
گرٛیٖنسِپین گُزریو 22 جوٗن 2026 [[واشِنٛگٹَن ڈی سی]] مَنٛز پننِس گَرَس مَنٛز [[پارکنسن بؠمٲرؠ|پارکنسن بیمارِ]] ہٕنٛزِ پیچیدگی سٟتؠ 100 ؤری وٲنسہِ۔ تٔمؠ سٕنٛدٕ مرنہٕ پتہٕ، [[فیڈرل ریزرو|فیڈرل ریزروہن]] کوٚر گرٛیٖنسِپین یاد: "تٔمؠ سٕنٛزٕ قیادتس مَنٛز، فیڈرل ریزرو کٔر قٲمتٕک استحکامُک اَکھ مستقل دور حٲصل ییٚمہِ معاشی ترقی ہنٛز حمایت کٔر تہٕ ادارس پؠٹھ عوامک اعتمادس لنگر کرنس مَنٛز مَدَتھ کٔر"۔<ref>{{Cite web |date=June 22, 2026 |title=Federal Reserve notes with deep sadness the passing of Alan Greenspan |url=https://www.federalreserve.gov/newsevents/pressreleases/other20260622a.htm |access-date=June 23, 2026 |website=Board of Governors of the Federal Reserve System |archive-date=June 22, 2026 |archive-url=https://web.archive.org/web/20260622192458/https://www.federalreserve.gov/newsevents/pressreleases/other20260622a.htm |url-status=live }}</ref>
==حَوالہٕ==
[[زٲژ:اَمریٖکی لوٗکھ]]
[[زٲژ:1926 پٲدٲیِش]]
[[زٲژ:2026 وَفات]]
k819tsy4nr91l8pkye85kbnr61l5cpp
ایلن گرینسپین
0
31097
142828
2026-06-25T15:54:24Z
آیات محراج
11062
رَجوٗع مُکَرر تَخلیٖق کَران
142828
wikitext
text/x-wiki
#REDIRECT [[ایٚلن_گرٛیٖنسِپین]]
8ac5vgwbbvvfpdswrjuns5pg6hgy6nt
فرما:Infobox person/catalan
10
31098
142833
2026-06-25T16:34:43Z
آیات محراج
11062
Content copied from catalan wikipedia
142833
wikitext
text/x-wiki
<includeonly>{{Infobox person
| child = {{{child|}}}
| item = {{{item|}}}
| lang = {{{lang|}}}
| v_icon = {{{v_icon|{{{icona|}}}}}}
| v_name = {{{v_name|{{{nom|{{{nom_oficial|}}}}}}}}}
| v_p18 = {{{v_p18|{{{imatge|}}}}}}
| v_p13146 = {{{v_p13146|}}}
| v_p511 = {{{v_p511|{{{prefix_honorific|}}}}}}
| v_p1035 = {{{v_p1035|{{{sufix_honorific|}}}}}}
| v_p18_caption = {{{v_p18_caption|{{{peu|}}}}}}
| v_p1785 = {{{v_p1785|{{{nom_temple|}}}}}}
| v_p1786 = {{{v_p1786|{{{nom_postum|}}}}}}
| v_p1559 = {{{v_p1559|{{{nom_original|}}}}}}
| v_p1477 = {{{v_p1477|{{{nom_naixement|}}}}}}
| v_p7383 = {{{v_p7383|{{{jeroglífic|}}}}}}
| v_prenomen = {{{v_prenomen|{{{prenomen|}}}}}}
| v_prenomen_hiero = {{{v_prenomen_hiero|{{{prenomen_hiero|}}}}}}
| v_prenomen2 = {{{v_prenomen2|{{{prenomen2|}}}}}}
| v_nomen = {{{v_nomen|{{{nomen|}}}}}}
| v_nomen_hiero = {{{v_nomen_hiero|{{{nomen_hiero|}}}}}}
| v_nomen2 = {{{v_nomen2|{{{nomen2|}}}}}}
| v_horus = {{{v_horus|{{{horus|}}}}}}
| v_horus_hiero = {{{v_horus_hiero|{{{horus_hiero|}}}}}}
| v_horus2 = {{{v_horus2|{{{horus2|}}}}}}
| v_nebty = {{{v_nebty|{{{nebty|}}}}}}
| v_netby_hiero = {{{v_netby_hiero|{{{netby_hiero|}}}}}}
| v_golden = {{{v_golden|{{{golden|}}}}}}
| v_golden_hiero = {{{v_golden_hiero|{{{golden_hiero|}}}}}}
| v_p1317 = {{{v_p1317|{{{floruit|}}}}}}
| v_p1636 = {{{v_p1636|{{{bateig|}}}}}}
| v_p742 = {{{v_p742|{{{alies|}}}}}}
| v_p569 = {{{v_p569|{{{data_naixement|}}}}}}
| v_p19 = {{{v_p19|{{{lloc_naixement|}}}}}}
| v_p570 = {{{v_p570|{{{data_defuncio|}}}}}}
| v_p20 = {{{v_p20|{{{lloc_defuncio|}}}}}}
| v_p746 = {{{v_p746|{{{data_desaparicio|}}}}}}
| v_p509 = {{{v_p509|{{{causa_defuncio|}}}}}}
| v_p1196 = {{{v_p1196|{{{circumstancia_defuncio|}}}}}}
| v_p119 = {{{v_p119|{{{sepultura|}}}}}}
| v_p119_coord = {{{v_p119_coord|{{{coordenades_sepultura|}}}}}}
| v_p263 = {{{v_p263|{{{residencia|}}}}}}
| v_nationality = {{{v_nationality|{{{nacionalitat|}}}}}}
| v_p27 = {{{v_p27|{{{ciutadania|}}}}}}
| v_p172 = {{{v_p172|{{{etnia|}}}}}}
| v_p140 = {{{v_p140|{{{religio|}}}}}}
| v_p1142 = {{{v_p1142|{{{ideologia|}}}}}}
| v_p6553 = {{{v_p6553|{{{pronom|}}}}}}
| v_p106 = {{{v_p106|{{{ocupacio|}}}}}}
| l_p106 = {{{l_p106|{{{l_occupation|}}}}}}
| v_p101 = {{{v_p101|{{{camp_treball|}}}}}}
| l_p101 = {{{l_p101|{{{etiqueta_camp_treball|}}}}}}
| v_p2348 = {{{v_p2348|{{{epoca|}}}}}}
| l_p2348 = {{{l_p2348|{{{etiqueta_epoca|}}}}}}
| v_p937 = {{{v_p937|{{{lloc_treball|}}}}}}
| v_p1026 = {{{v_p1026|{{{tesi|}}}}}}
| v_p1026_url = {{{v_p1026_url|{{{tesi_url|}}}}}}
| v_p1026_any = {{{v_p1026_any|{{{tesi_any|}}}}}}
| v_p184 = {{{v_p184|{{{direccio_tesi|}}}}}}
| v_p185 = {{{v_p185|{{{estudiants_doctorals|}}}}}}
| v_p802 = {{{v_p802|{{{deixebles|}}}}}}
| v_p69 = {{{v_p69|{{{alma_mater|}}}}}}
| v_p22 = {{{v_p22|{{{pare|}}}}}}
| v_p25 = {{{v_p25|{{{mare|}}}}}}
| v_p26 = {{{v_p26|{{{conjuge|}}}}}}
| v_p3373 = {{{v_p3373|{{{germans|}}}}}}
| v_p40 = {{{v_p40|{{{fills|}}}}}}
| v_p1412 = {{{v_p1412|{{{llengua|}}}}}}
| v_p2031 = {{{v_p2031|{{{periode_actiu|}}}}}}
| v_data_debut = {{{v_data_debut|{{{data_debut|}}}}}}
| v_place_debut = {{{v_place_debut|{{{lloc_debut|}}}}}}
| v_data_retired = {{{v_data_retired|{{{data_retirada|}}}}}}
| v_place_retired = {{{v_place_retired|{{{lloc_retirada|}}}}}}
| v_p135 = {{{v_p135|{{{moviment|}}}}}}
| v_p136 = {{{v_p136|{{{genere|}}}}}}
| v_known_by = {{{v_known_by|{{{conegut_per|}}}}}}
| v_p800 = {{{v_p800|{{{obres_notables|{{{millors_films|}}}}}}}}}
| v_p737 = {{{v_p737|{{{influencies_de|}}}}}}
| v_influence_on = {{{v_influence_on|{{{influi_en|}}}}}}
| v_education = {{{v_education|{{{educacio|}}}}}}
| v_p53 = {{{v_p53|{{{dinastia|}}}}}}
| l_p53 = {{{l_p53|{{{etiqueta_dinastia|}}}}}}
| v_p94 = {{{v_p94|{{{escutpeu|}}}}}}
| v_p1451 = {{{v_p1451|{{{lema_escut|}}}}}}
| v_p102 = {{{v_p102|{{{partit_politic|}}}}}}
| v_p463 = {{{v_p463|{{{membre_de|}}}}}}
| v_p451 = {{{v_p451|{{{parella|}}}}}}
| l_p108 = {{{l_p108|{{{etiqueta_organitzacio|}}}}}}
| v_p108 = {{{v_p108|{{{ocupador|}}}}}}
| v_preformated_position = {{#ifeq:{{{carrec|{{{v_p39|{{{v_preformated_position|{{{extensio_carrecs_successoris|}}}}}}}}}}}}|NONE|<!-- no es vol WD
-->|{{#if:{{{v_preformated_position|{{{extensio_carrecs_successoris|}}}}}}
|{{{v_preformated_position|{{{extensio_carrecs_successoris|}}}}}}<!-- ve preparat-->
|{{#if:{{{carrec|{{{v_p39|}}}}}}{{{carrec2|}}}{{{carrec3|}}}{{{carrec4|}}}{{{carrec5|}}}{{{carrec6|}}}
{{{carrec7|}}}{{{carrec8|}}}{{{carrec9|}}}{{{carrec10|}}}
|<!-- Munta blocs de càrrecs successoris manuals si hi ha alguna dada manual
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{carrec|{{{v_p39|}}}}}}
| w_ordre = {{{ordre|}}}
| w_escut_carrec = {{{escut_carrec|}}}
| w_inici = {{{inici|{{{term_start|}}}}}}
| w_final = {{{final|{{{term_end|}}}}}}
| w_predecessor = {{{predecessor|}}}
| w_successor = {{{successor|}}}
| w_junt_a = {{{junt_a|}}}
| w_nominat = {{{nominat|}}}
| w_designat = {{{designat|}}}
| w_a_etiqueta = {{{a_etiqueta|}}}
| w_a_nom = {{{a_nom|}}}
| w_b_etiqueta = {{{b_etiqueta|}}}
| w_b_nom = {{{b_nom|}}}
| w_e_etiqueta = {{{e_etiqueta|}}}
| w_e_nom = {{{e_nom|}}}
| w_f_etiqueta = {{{f_etiqueta|}}}
| w_f_nom = {{{f_nom|}}}
| w_gabinet = {{{gabinet|}}}
| w_oponents = {{{oponents|}}}
| w_k_etiqueta = {{{k_etiqueta|}}}
| w_k_nom = {{{k_nom|}}}
| w_l_etiqueta = {{{l_etiqueta|}}}
| w_l_nom = {{{l_nom|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec2|{{{office2|{{{carrec2|{{{order2|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec2|{{{escut_carrec2|}}}}}}
| w_inici = {{{inici2|{{{term_start2|}}}}}}
| w_final = {{{final2|{{{term_end2|}}}}}}
| w_predecessor = {{{predecessor2|}}}
| w_successor = {{{successor2|}}}
| w_junt_a = {{{junt_a2|}}}
| w_nominat = {{{nominat2|}}}
| w_designat = {{{designat2|}}}
| w_a_etiqueta = {{{a_etiqueta2|}}}
| w_a_nom = {{{a_nom2|}}}
| w_b_etiqueta = {{{b_etiqueta2|}}}
| w_b_nom = {{{b_nom2|}}}
| w_e_etiqueta = {{{e_etiqueta2|}}}
| w_e_nom = {{{e_nom2|}}}
| w_f_etiqueta = {{{f_etiqueta2|}}}
| w_f_nom = {{{f_nom2|}}}
| w_gabinet = {{{gabinet2|}}}
| w_oponents = {{{oponents2|}}}
| w_k_etiqueta = {{{k_etiqueta2|}}}
| w_k_nom = {{{k_nom2|{{{k_nom 2|}}}}}}
| w_l_etiqueta = {{{l_etiqueta2|}}}
| w_l_nom = {{{l_nom2|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec3|{{{office3|{{{carrec3|{{{order3|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec3|{{{escut_carrec3|}}}}}}
| w_inici = {{{inici3|{{{term_start3|}}}}}}
| w_final = {{{final3|{{{term_end3|}}}}}}
| w_predecessor = {{{predecessor3|}}}
| w_successor = {{{successor3|}}}
| w_junt_a = {{{junt_a3|}}}
| w_nominat = {{{nominat3|}}}
| w_designat = {{{designat3|}}}
| w_a_etiqueta = {{{a_etiqueta3|}}}
| w_a_nom = {{{a_nom3|}}}
| w_b_etiqueta = {{{b_etiqueta3|}}}
| w_b_nom = {{{b_nom3|}}}
| w_e_etiqueta = {{{e_etiqueta3|}}}
| w_e_nom = {{{e_nom3|}}}
| w_f_etiqueta = {{{f_etiqueta3|}}}
| w_f_nom = {{{f_nom3|}}}
| w_gabinet = {{{gabinet3|}}}
| w_oponents = {{{oponents3|}}}
| w_k_etiqueta = {{{k_etiqueta3|}}}
| w_k_nom = {{{k_nom3|}}}
| w_l_etiqueta = {{{l_etiqueta3|}}}
| w_l_nom = {{{l_nom3|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec4|{{{office4|{{{carrec4|{{{order4|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec4|{{{escut_carrec4|}}}}}}
| w_inici = {{{inici4|{{{term_start4|}}}}}}
| w_final = {{{final4|{{{term_end4|}}}}}}
| w_predecessor = {{{predecessor4|}}}
| w_successor = {{{successor4|}}}
| w_junt_a = {{{junt_a4|}}}
| w_nominat = {{{nominat4|}}}
| w_designat = {{{designat4|}}}
| w_a_etiqueta = {{{a_etiqueta4|}}}
| w_a_nom = {{{a_nom4|}}}
| w_b_etiqueta = {{{b_etiqueta4|}}}
| w_b_nom = {{{b_nom4|}}}
| w_e_etiqueta = {{{e_etiqueta4|}}}
| w_e_nom = {{{e_nom4|}}}
| w_f_etiqueta = {{{f_etiqueta4|}}}
| w_f_nom = {{{f_nom4|}}}
| w_gabinet = {{{gabinet4|}}}
| w_oponents = {{{oponents4|}}}
| w_k_etiqueta = {{{k_etiqueta4|}}}
| w_k_nom = {{{k_nom4|}}}
| w_l_etiqueta = {{{l_etiqueta4|}}}
| w_l_nom = {{{l_nom4|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec5|{{{office5|{{{carrec5|{{{order5|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec5|{{{escut_carrec5|}}}}}}
| w_inici = {{{inici5|{{{term_start5|}}}}}}
| w_final = {{{final5|{{{term_end5|}}}}}}
| w_predecessor = {{{predecessor5|}}}
| w_successor = {{{successor5|}}}
| w_junt_a = {{{junt_a5|}}}
| w_nominat = {{{nominat5|}}}
| w_designat = {{{designat5|}}}
| w_a_etiqueta = {{{a_etiqueta5|}}}
| w_a_nom = {{{a_nom5|}}}
| w_b_etiqueta = {{{b_etiqueta5|}}}
| w_b_nom = {{{b_nom5|}}}
| w_e_etiqueta = {{{e_etiqueta5|}}}
| w_e_nom = {{{e_nom5|}}}
| w_f_etiqueta = {{{f_etiqueta5|}}}
| w_f_nom = {{{f_nom5|}}}
| w_gabinet = {{{gabinet5|}}}
| w_oponents = {{{oponents5|}}}
| w_k_etiqueta = {{{k_etiqueta5|}}}
| w_k_nom = {{{k_nom5|}}}
| w_l_etiqueta = {{{l_etiqueta5|}}}
| w_l_nom = {{{l_nom5|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec6|{{{office6|{{{carrec6|{{{order6|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec6|{{{escut_carrec6|}}}}}}
| w_inici = {{{inici6|{{{term_start6|}}}}}}
| w_final = {{{final6|{{{term_end6|}}}}}}
| w_predecessor = {{{predecessor6|}}}
| w_successor = {{{successor6|}}}
| w_junt_a = {{{junt_a6|}}}
| w_nominat = {{{nominat6|}}}
| w_designat = {{{designat6|}}}
| w_a_etiqueta = {{{a_etiqueta6|}}}
| w_a_nom = {{{a_nom6|}}}
| w_b_etiqueta = {{{b_etiqueta6|}}}
| w_b_nom = {{{b_nom6|}}}
| w_e_etiqueta = {{{e_etiqueta6|}}}
| w_e_nom = {{{e_nom6|}}}
| w_f_etiqueta = {{{f_etiqueta6|}}}
| w_f_nom = {{{f_nom6|}}}
| w_gabinet = {{{gabinet6|}}}
| w_oponents = {{{oponents6|}}}
| w_k_etiqueta = {{{k_etiqueta6|}}}
| w_k_nom = {{{k_nom6|}}}
| w_l_etiqueta = {{{l_etiqueta6|}}}
| w_l_nom = {{{l_nom6|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec7|{{{office7|{{{carrec7|{{{order7|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec7|{{{escut_carrec7|}}}}}}
| w_inici = {{{inici7|{{{term_start7|}}}}}}
| w_final = {{{final7|{{{term_end7|}}}}}}
| w_predecessor = {{{predecessor7|}}}
| w_successor = {{{successor7|}}}
| w_junt_a = {{{junt_a7|}}}
| w_nominat = {{{nominat7|}}}
| w_designat = {{{designat7|}}}
| w_a_etiqueta = {{{a_etiqueta7|}}}
| w_a_nom = {{{a_nom7|}}}
| w_b_etiqueta = {{{b_etiqueta7|}}}
| w_b_nom = {{{b_nom7|}}}
| w_e_etiqueta = {{{e_etiqueta7|}}}
| w_e_nom = {{{e_nom7|}}}
| w_f_etiqueta = {{{f_etiqueta7|}}}
| w_f_nom = {{{f_nom7|}}}
| w_gabinet = {{{gabinet7|}}}
| w_oponents = {{{oponents7|}}}
| w_k_etiqueta = {{{k_etiqueta7|}}}
| w_k_nom = {{{k_nom7|}}}
| w_l_etiqueta = {{{l_etiqueta7|}}}
| w_l_nom = {{{l_nom7|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec8|{{{office8|{{{carrec8|{{{order8|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec8|{{{escut_carrec8|}}}}}}
| w_inici = {{{inici8|{{{term_start8|}}}}}}
| w_final = {{{final8|{{{term_end8|}}}}}}
| w_predecessor = {{{predecessor8|}}}
| w_successor = {{{successor8|}}}
| w_junt_a = {{{junt_a8|}}}
| w_nominat = {{{nominat8|}}}
| w_designat = {{{designat8|}}}
| w_a_etiqueta = {{{a_etiqueta8|}}}
| w_a_nom = {{{a_nom8|}}}
| w_b_etiqueta = {{{b_etiqueta8|}}}
| w_b_nom = {{{b_nom8|}}}
| w_e_etiqueta = {{{e_etiqueta8|}}}
| w_e_nom = {{{e_nom8|}}}
| w_f_etiqueta = {{{f_etiqueta8|}}}
| w_f_nom = {{{f_nom8|}}}
| w_gabinet = {{{gabinet8|}}}
| w_oponents = {{{oponents8|}}}
| w_k_etiqueta = {{{k_etiqueta8|}}}
| w_k_nom = {{{k_nom8|}}}
| w_l_etiqueta = {{{l_etiqueta8|}}}
| w_l_nom = {{{l_nom8|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec9|{{{office9|{{{carrec9|{{{order9|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec9|{{{escut_carrec9|}}}}}}
| w_inici = {{{inici9|{{{term_start9|}}}}}}
| w_final = {{{final9|{{{term_end9|}}}}}}
| w_predecessor = {{{predecessor9|}}}
| w_successor = {{{successor9|}}}
| w_junt_a = {{{junt_a9|}}}
| w_nominat = {{{nominat9|}}}
| w_designat = {{{designat9|}}}
| w_a_etiqueta = {{{a_etiqueta9|}}}
| w_a_nom = {{{a_nom9|}}}
| w_b_etiqueta = {{{b_etiqueta9|}}}
| w_b_nom = {{{b_nom9|}}}
| w_e_etiqueta = {{{e_etiqueta9|}}}
| w_e_nom = {{{e_nom9|}}}
| w_f_etiqueta = {{{f_etiqueta9|}}}
| w_f_nom = {{{f_nom9|}}}
| w_gabinet = {{{gabinet9|}}}
| w_oponents = {{{oponents9|}}}
| w_k_etiqueta = {{{k_etiqueta9|}}}
| w_k_nom = {{{k_nom9|}}}
| w_l_etiqueta = {{{l_etiqueta9|}}}
| w_l_nom = {{{l_nom9|}}}
}}<!--
-->{{Infotaula polític/bloc carrec
| w_carrec = {{{càrrec10|{{{office10|{{{carrec10|{{{order10|}}}}}}}}}}}}
| w_escut_carrec = {{{escut càrrec10|{{{escut_carrec10|}}}}}}
| w_inici = {{{inici10|{{{term_start10|}}}}}}
| w_final = {{{final10|{{{term_end10|}}}}}}
| w_predecessor = {{{predecessor10|}}}
| w_successor = {{{successor10|}}}
| w_junt_a = {{{junt_a10|}}}
| w_nominat = {{{nominat10|}}}
| w_designat = {{{designat10|}}}
| w_a_etiqueta = {{{a_etiqueta10|}}}
| w_a_nom = {{{a_nom10|}}}
| w_b_etiqueta = {{{b_etiqueta10|}}}
| w_b_nom = {{{b_nom10|}}}
| w_e_etiqueta = {{{e_etiqueta10|}}}
| w_e_nom = {{{e_nom10|}}}
| w_f_etiqueta = {{{f_etiqueta10|}}}
| w_f_nom = {{{f_nom10|}}}
| w_gabinet = {{{gabinet10|}}}
| w_oponents = {{{oponents10|}}}
| w_k_etiqueta = {{{k_etiqueta10|}}}
| w_k_nom = {{{k_nom10|}}}
| w_l_etiqueta = {{{l_etiqueta10|}}}
| w_l_nom = {{{l_nom10|}}}
}}
}} }} }}
| v_preformated_award = {{{v_preformated_award|{{{extensio_guardons|}}}}}}
| v_preformated_param_esport = {{{v_preformated_param_esport|{{{extensio_parametres_esport|}}}}}}
| v_preformated_sport_history = {{{v_preformated_sport_history|{{{extensio_carrera_esportiva|}}}}}}
| v_preformated_event_history = {{{v_preformated_event_history|{{{extensio_participacio_esdeveniments|}}}}}}
| v_identifiers = {{{v_identifiers|{{{identificadors|}}}}}}
| l_p54 = {{{l_p54|{{{etiqueta_carrera_esportiva|}}}}}}
| v_p54 = {{{v_p54|{{{equips esportius|}}}}}}
| v_p109 = {{{v_p109|{{{signatura|}}}}}}
| v_organization = {{{v_organization|{{{organitzacio|}}}}}}
| v_social_media = {{{v_social_media|{{{mitjans|}}}}}}
| v_p856 = {{{v_p856|{{{lloc_web|{{{web|}}}}}}}}}
| v_notes = {{{v_notes|{{{notes|}}}}}}
| v_p1875 = {{{v_p1875|{{{agent|}}}}}}
| v_p97 = {{{v_p97|{{{titol_personal|}}}}}}
| v_p793 = {{{v_p793|{{{cronologia|}}}}}}
| v_p485 = {{{v_p485|{{{arxius|}}}}}}
| v_p2048 = {{{v_p2048|{{{alçada|}}}}}}
| v_p2067 = {{{v_p2067|{{{pes|}}}}}}
| v_p1340 = {{{v_p1340|{{{ulls|}}}}}}
| v_p1884 = {{{v_p1884|{{{cabells|}}}}}}
| v_p9969 = {{{v_p9969|{{{cataleg_raonat|}}}}}}
| v_style = {{{v_style|{{{estil|}}}}}}
| v_catalogue = {{{v_catalogue|{{{cataleg|}}}}}}
| v_p1303 = {{{v_p1303|{{{instrument|}}}}}}
| v_outstanding_instrument = {{{v_outstanding_instrument|{{{instruments_destacats|}}}}}}
| v_p3618 = {{{v_p3618|{{{salari|}}}}}}
| v_p2218 = {{{v_p2218|{{{patrimoni_personal|{{{valor_net|}}}}}}}}}
| v_p945 = {{{v_p945|{{{lleialtat|}}}}}}
| v_p241 = {{{v_p241|{{{arma|}}}}}}
| v_p410 = {{{v_p410|{{{rang|}}}}}}
| v_military_unit = {{{v_military_unit|{{{unitat|}}}}}}
| v_p598 = {{{v_p598|{{{comandaments|}}}}}}
| v_p607 = {{{v_p607|{{{batalles|}}}}}}
| v_victories = {{{v_victories|{{{victories|}}}}}}
| v_military_periode = {{{v_military_periode|{{{periode_actiu_militar|}}}}}}
| v_p2873 = {{{v_p2873|{{{temps_espai|}}}}}}
| v_p793_eva = {{{v_p793_eva|{{{eva1|}}}}}}
| v_crew = {{{v_crew|{{{tripulacio|}}}}}}
| v_insignia_mission = {{{v_insignia_mission|{{{insignia_missio|}}}}}}
| v_p450 = {{{v_p450|{{{missio_espacial|}}}}}}
| v_other_duties = {{{v_other_duties|{{{altres_ocupacions|{{{altres_carrecs|}}}}}}}}}
| v_group_humans = {{{v_group_humans|{{{grup_humans|}}}}}}
| v_group_type = {{{v_group_type|{{{grup_tipus|}}}}}}
| v_p411 = {{{v_p411|{{{enaltiment|}}}}}}
| v_p1049 = {{{v_p1049|{{{venerat_a|}}}}}}
| v_p5873 = {{{v_p5873|{{{lloc_pelegrinatge|}}}}}}
| v_p841 = {{{v_p841|{{{festivitat|}}}}}}
| v_p4185 = {{{v_p4185|{{{iconografia|}}}}}}
| v_p2925 = {{{v_p2925|{{{patronatge|}}}}}}
| v_p611 = {{{v_p611|{{{orde|}}}}}}
| v_p611_p585 = {{{v_p611_p585|{{{data_ordenacio|}}}}}}
| v_p1598 = {{{v_p1598|{{{consagracio|}}}}}}
| v_proclamation = {{{v_proclamation|{{{proclamacio|}}}}}}
| v_p412 = {{{v_p412|{{{veu|}}}}}}
| v_p1897 = {{{v_p1897|{{{veu_alta|}}}}}}
| v_p1898 = {{{v_p1898|{{{veu_baixa|}}}}}}
| v_p264 = {{{v_p264|{{{discografica|}}}}}}
| v_p1066 = {{{v_p1066|{{{mestres|}}}}}}
| v_orchestra = {{{v_orchestra|{{{orquestres|}}}}}}
| v_p1327 = {{{v_p1327|{{{artistes_relacionats|{{{persones_relacionades|}}}}}}}}}
| v_p3300 = {{{v_p3300|{{{director_musical|}}}}}}
| v_p2561 = {{{v_p2561|{{{altres_noms|}}}}}}
| v_pen_name = {{{v_pen_name|{{{nom_ploma|}}}}}}
| v_p428 = {{{v_p428|{{{autor_abrev_bot|}}}}}}
| v_p835 = {{{v_p835|{{{autor_abrev_zoo|}}}}}}
| v_p2650 = {{{v_p2650|{{{interessos|}}}}}}
| v_p2962 = {{{v_p2962|{{{titol_escacs|}}}}}}
| v_p1087 = {{{v_p1087|{{{elo_max|}}}}}}
| v_p1440 = {{{v_p1440|{{{id_fide|}}}}}}
| v_header_medaltable = {{{v_header_medaltable|{{{header_medaller|}}}}}}
| v_medal_table = {{{v_medal_table|{{{dades_medaller|}}}}}}
| v_progenitors = {{{v_progenitors|{{{pares|}}}}}}
| v_p1038 = {{{v_p1038|{{{parents|}}}}}}
| v_p1595 = {{{v_p1595|{{{carrecs_judicials|}}}}}}
| v_p1399 = {{{v_p1399|{{{condemnes|}}}}}}
| v_monuments = {{{v_monuments|{{{monuments|}}}}}}
| l_monuments = {{{l_monuments|{{{etiqueta_monuments|}}}}}}
| v_p166 = {{{v_p166|{{{premis|{{{guardons|}}}}}}}}}
| v_img_masterpiece = {{{v_img_masterpiece|{{{imatgeobra|}}}}}}
| v_cap_masterpiece = {{{v_cap_masterpiece|{{{peuobra|}}}}}}
| v_p1532 = {{{v_p1532|{{{nacionalitat_esportiva|}}}}}}
| v_p641 = {{{v_p641|{{{esport|}}}}}}
| v_p2416 = {{{v_p2416|{{{disciplina|}}}}}}
| v_p2094 = {{{v_p2094|{{{classe|}}}}}}
| v_p413 = {{{v_p413|{{{posicio_equip|{{{position|}}}}}}}}}
| v_p552 = {{{v_p552|{{{lateralitat|}}}}}}
| v_p423 = {{{v_p423|{{{dispar|}}}}}}
| v_p741 = {{{v_p741|{{{ma_joc|}}}}}}
| v_p118 = {{{v_p118|{{{lliga|}}}}}}
| v_currentclub = {{{v_currentclub|{{{club_actual|{{{clubactual|{{{currentclub|}}}}}}}}}}}}
| v_p1618 = {{{v_p1618|{{{dorsal_club|{{{clubnumber|{{{numeroclub|}}}}}}}}}}}}
| v_p647 = {{{v_p647|{{{draft_equip|}}}}}}
| v_p647_p1836 = {{{v_p647_p1836|{{{draft|}}}}}}
| v_p647_p585 = {{{v_p647_p585|{{{draft_any|}}}}}}
| v_p2095 = {{{v_p2095|{{{copilot|}}}}}}
| v_p10449 = {{{v_p10449|{{{entrenador|}}}}}}
| v_p859 = {{{v_p859|{{{patrocinador|{{{patrons|}}}}}}}}}
| v_p5995 = {{{v_p5995|{{{patrocinador_material|}}}}}}
| v_p1344 = {{{v_p1344|{{{participa_en|}}}}}}
| v_p1343 = {{{v_p1343|{{{afirmat_a|}}}}}}
| v_blacklist_p1343 = {{{v_blacklist_p1343|}}}
| v_musical_subdirector = {{{v_musical_subdirector|{{{sotsdirector_musical|}}}}}}
| v_group_members = {{{v_group_members|{{{membres|}}}}}}
| v_former_members = {{{v_former_members|{{{membres_anteriors|}}}}}}
| v_repertoire = {{{v_repertoire|{{{repertori|}}}}}}
| v_trajectory = {{{v_trajectory|{{{trajectoria|}}}}}}
| v_actor_role = {{{v_actor_role|{{{papers|}}}}}}
| v_series = {{{v_series|{{{series|}}}}}}
| v_films = {{{v_films|{{{films|}}}}}}
| v_film_editor = {{{v_film_editor|{{{editor|}}}}}}
| v_programs = {{{v_programs|{{{programes|}}}}}}
| v_early works = {{{v_early works|{{{primeres_obres|}}}}}}
| v_art = {{{v_art|{{{art|}}}}}}
| v_artistic_work = {{{v_artistic_work|{{{obres|}}}}}}
| v_main_projects = {{{v_main_projects|{{{principals_projectes|{{{principals_dissenys|}}}}}}}}}
| v_p990 = {{{v_p990|{{{registre_veu|}}}}}}
| v_entitree = {{{v_entitree|}}}
| v_whitelist_p6802 = {{{v_whitelist_p6802|}}}
| v_cllps_influenced_by = {{{v_cllps_influenced_by|{{{desplega_influencia|}}}}}}
| v_cllps_works = {{{v_cllps_works|{{{desplega_obres|}}}}}}
| v_cllps_awards = {{{v_cllps_awards|{{{desplega_premis|}}}}}}
| v_cllps_participant_in = {{{v_cllps_participant_in|{{{desplega_participa|}}}}}}
}}<!-- Parameter check:
-->{{#invoke:TemplatePar
|check
|template=Plantilla:Infotaula persona
|all=
|opt=
a_etiqueta= a_etiqueta10= a_etiqueta11= a_etiqueta2= a_etiqueta3= a_etiqueta4= a_etiqueta5= a_etiqueta6= a_etiqueta7= a_etiqueta8= a_etiqueta9= a_nom= a_nom10= a_nom11= a_nom2= a_nom3= a_nom4= a_nom5= a_nom6= a_nom7= a_nom8= a_nom9= agent= alçada= alies= altres_noms= alma_mater= alt= altres_ocupacions= arma= art= artistes_relacionats= persones_relacionades= autor_abrev_bot= autor_abrev_zoo= b_etiqueta= b_etiqueta10= b_etiqueta11= b_etiqueta2= b_etiqueta3= b_etiqueta4= b_etiqueta5= b_etiqueta6= b_etiqueta7= b_etiqueta8= b_etiqueta9= b_nom= b_nom10= b_nom11= b_nom2= b_nom3= b_nom4= b_nom5= b_nom6= b_nom7= b_nom8= b_nom9= batalles= bateig= bust_natural= cabells= camp_treball= lloc_treball= carrec= carrec10= carrec11= carrec2= carrec3= carrec4= carrec5= carrec6= carrec7= carrec8= carrec9= carrecs_judicials= casa_reial= cataleg= causa_defuncio= causa_mort= child= ciutadania= comandaments= condemnes= conegut_per= conjuge= coordenades_sepultura= data_defuncio= data_desaparicio= data_naixement= deixebles= <!-- descobriment_cos= --> designat= designat10= designat11= designat2= designat3= designat4= designat5= designat6= designat7= designat8= designat9= dinastia= discografica= e_etiqueta= e_etiqueta10= e_etiqueta11= e_etiqueta2= e_etiqueta3= e_etiqueta4= e_etiqueta5= e_etiqueta6= e_etiqueta7= e_etiqueta8= e_etiqueta9= e_nom= e_nom10= e_nom11= e_nom2= e_nom3= e_nom4= e_nom5= e_nom6= e_nom7= e_nom8= e_nom9= educacio= equips= escut_carrec= escut_carrec10= escut_carrec11= escut_carrec2= escut_carrec3= escut_carrec4= escut_carrec5= escut_carrec6= escut_carrec7= escut_carrec8= escut_carrec9=
escutpeu= estil= l_occupation= <!-- estudi_arquitectes= etiqueta_dinastia= etiqueta_ocupacio= etiqueta_organitzacio= alt_signatura= --> etnia= extensio_carrecs_successoris= extensio_carrera_militar= extensio_guardons= extensio_incrustada1= extensio_incrustada2= extensio_incrustada3= extensio_incrustada4= extensio_incrustada5= extensio_noms_farao= f_etiqueta= f_etiqueta10= f_etiqueta11= f_etiqueta2= f_etiqueta3= f_etiqueta4= f_etiqueta5= f_etiqueta6= f_etiqueta7= f_etiqueta8= f_etiqueta9= f_nom= f_nom10= f_nom11= f_nom2= f_nom3= f_nom4= f_nom5= f_nom6= f_nom7= f_nom8= f_nom9= festival_berlin= festival_canes= festival_sant_sebastia= festival_sitges= fills= filmfare_awards= films= final= final10= final11= final2= final3= final4= final5= final6= final7= final8= final9= gabinet= gabinet10= gabinet11= gabinet2= gabinet3= gabinet4= gabinet5= gabinet6= gabinet7= gabinet8= gabinet9= genere= golden= goldenhiero= honors= horus= horus2= horushiero= horushiero2= horusprefix= ideologia= imatge= imatgeobra= influencies_de= influi_en= inici= inici10= inici11= inici2= inici3= inici4= inici5= inici6= inici7= inici8= inici9= instrument= junt_a= junt_a10= junt_a11= junt_a2= junt_a3= junt_a4= junt_a5= junt_a6= junt_a7= junt_a8= junt_a9= k_etiqueta= k_etiqueta10= k_etiqueta11= k_etiqueta2= k_etiqueta3= k_etiqueta4= k_etiqueta5= k_etiqueta6= k_etiqueta7= k_etiqueta8= k_etiqueta9= k_nom= k_nom10= k_nom11= k_nom2= k_nom3= k_nom4= k_nom5= k_nom6= k_nom7= k_nom8= k_nom9= l_etiqueta= l_etiqueta10= l_etiqueta11= l_etiqueta2= l_etiqueta3= l_etiqueta4= l_etiqueta5= l_etiqueta6= l_etiqueta7= l_etiqueta8= l_etiqueta9= l_nom= l_nom10= l_nom11= l_nom2= l_nom3= l_nom4= l_nom5= l_nom6= l_nom7= l_nom8= l_nom9= lema_escut= lleialtat= periode_actiu_militar= llengua_nom_original= llengua= lloc_defuncio= lloc_desaparicio= lloc_naixement= lloc_web= mare= membre_de= membres_anteriors= mestres= millors_films= monuments= mostra_venecia= moviment= myspace= nacionalitat= national_film_awards= nom_naixement= nom_original_lleng= nom_original= nom= nom_temple= nom_postum= nomen= nomen2= nomenhiero= nomenhiero2= nominat= nominat10= nominat11= nominat2= nominat3= nominat4= nominat5= nominat6= nominat7= nominat8= nominat9= notes= obres_notables= obres= ocupacio= ocupacioWD= ocupador= organitzacio= oponents= oponents10= oponents11= oponents2= oponents3= oponents4= oponents5= oponents6= oponents7= oponents8= oponents9= orquestres= pare= parella= parents= pares= germans= partit_politic= patrons= patrocinador= periode_actiu_militar= periode_actiu= pes= <!-- imatge_militar= peu_imatge_militar= peu_veu= --> peu= peuobra= predecessor= predecessor10= predecessor11= predecessor2= predecessor3= predecessor4= predecessor5= predecessor6= predecessor7= predecessor8= predecessor9= prefix_honorific= premis= prenomen= prenomen2= prenomenhiero= prenomenhiero2= <!-- principals_dissenys= principals_edificis= mitjans= --> principals_projectes= editor= programes= proposit= rang= registre_veu= religio= repertori= residencia= salari= sepultura= series= signatura= <!-- situacio_judicial= tematica= --> subheader= successor= successor10= successor11= successor2= successor3= successor4= successor5= successor6= successor7= successor8= successor9= sufix_honorific= talla_penis= titol_personal= trajectoria= ulls= unitat= valor_net= veu= victories= tesi= tesi_any= tesi_url= direccio_tesi= idees= <!-- era= regio= escola_tradicio= opositors= --> interessos= estudiants_doctorals= <!-- estudiants_notables= --> nom_ploma= primeres_obres= papers= membres= socis= president= vicepresident= direccio_tesi2= director_musical= sotsdirector_musical= nebty= nebtyhiero= instruments_destacats= ordre= ordre2= ordre3= ordre4= ordre5= ordre6= ordre7= ordre8= ordre9= ordre10= ordre11= <!-- assessorament_academic= premis_afi= premis_bafta= premis_butaca= premis_cesar= premis_emmy= premis_gaudi= premis_golden_globe= premis_goya= premis_grammy= premis_olivier= premis_oscar= premis_tony= premis_pulitzer= premis_nacionals= premis_regas= premis_mvm= premis_asensio= premis_ondas= premis_barnils= premis_cerecedo= premis_ofici_periodista= --> temps_espai= tripulacio= missio_espacial= insignia_missio= eva1= <!-- eva2= -->
decat= item= lang= cronologia= arxius= identificadors= copilot= wikidata= epoca= llengua_materna= l_memorials= l_employer= l_family=
<!--aliats= rivals= etiqueta_aliats= etiqueta_rivals= etiqueta_monuments= --> floruit= participa_en= circumstancia_defuncio=
orde= ordenacio= consagracio= proclamacio=
patronatge= data_beatificacio= data_canonitzacio= venerat_en= venerat_a= lloc_canonitzacio= enaltiment= lloc_beatificacio= beatificat_per= canonitzat_per= fets_destacables= festivitat= lloc_pelegrinatge= iconografia= fets_destacables= patronatge= <!-- supressio_culte= suprimit_per= continuadors= -->
lloc_debut= data_debut= lloc_retirada= data_retirada= lliga= dades_medaller= club_actual= posicio_equip= dorsal_club= posicio_equip= lateralitat= ma_joc= draft= draft_equip= draft_any= esport= disciplina= classe=<!-- especialitat= --> draft_equip= draft_any= entrenador= convoca_internacional= patrimoni_personal= extensio_parametres_esport= extensio_participacio_esdeveniments= extensio_carrera_esportiva= etiqueta_carrera_esportiva=
titol_escacs= elo_max= patrocinador_material= nacionalitat_esportiva= desplega_premis= desplega_obres= desplega_influencia= cataleg_raonat=
unit_P2048= unit_P2067= list_naixement=
<!-- News with internal parameter names -->
child= item= lang= v_icon= v_name= v_p18= v_p13146= v_p511= v_p1035= v_p18_caption= v_p1785= v_p1786= v_p1559= v_p1477= v_p7383=
v_prenomen= v_prenomen_hiero= v_prenomen2= v_nomen= v_nomen_hiero= v_nomen2= v_horus= v_horus_hiero= v_horus2= v_nebty= v_netby_hiero= v_golden= v_golden_hiero=
v_p1317= v_p1636= v_p742= v_p569= v_p19= v_p570= v_p20= v_p746= v_p509= v_p1196= v_p119= v_p119_coord= v_p263= v_nationality=
v_p27= v_p172= v_p140= v_p1142= v_p6553= v_p106= l_p106= v_p101= l_p101= v_p2348= l_p2348= v_p937= v_p1026= v_p1026_url=
v_p1026_any= v_p184= v_p185= v_p802= v_p69= v_p22= v_p25= v_p26= v_p3373= v_p40= v_p1412= v_p2031= v_data_debut= v_place_debut=
v_data_retired= v_place_retired= v_p135= v_p136= v_known_by= v_p800= v_p737= v_influence_on= v_education= v_p53= l_p53= v_p94=
v_p1451= v_p102= v_p463= v_p451= l_p108= v_p108= v_p39= v_preformated_position= v_preformated_award= v_preformated_param_esport=
v_preformated_sport_history= v_preformated_event_history= v_identifiers= l_p54= v_p54= v_p109= v_organization= v_social_media= v_p856=
v_notes= v_p1875= v_p97= v_p793= v_p485= v_p2048= v_p2067= v_p1340= v_p1884= v_p9969= v_style= v_catalogue= v_p1303= v_outstanding_instrument=
v_p3618= v_p2218= v_p945= v_p241= v_p410= v_military_unit= v_p598= v_p607= v_victories= v_military_periode= v_p2873= v_p793_eva=
v_crew= v_insignia_mission= v_p450= v_other_duties= v_group_humans= v_group_type= v_p411= v_p1049= v_p5873= v_p841= v_p4185=
v_p2925= v_p611= v_p611_p585= v_p1598= v_proclamation= v_p412= v_p1897= v_p1898= v_p264= v_p1066= v_orchestra= v_p1327=
v_p3300= v_p2561= v_pen_name= v_p428= v_p835= v_p2650= v_p2962= v_p1087= v_p1440= v_header_medaltable= v_medal_table= v_progenitors=
v_p1038= v_p1595= v_p1399= v_monuments= l_monuments= v_p166= v_img_masterpiece= v_cap_masterpiece= v_p1532= v_p641= v_p2416= v_p2094=
v_p413= v_p552= v_p423= v_p741= v_p118= v_currentclub= v_p1618= v_p647= v_p647_p1836= v_p647_p585= v_p2095= v_p10449= v_p859=
v_p5995= v_p1344= v_p1343= v_blacklist_p1343= v_musical_subdirector= v_group_members= v_former_members= v_repertoire= v_trajectory=
v_actor_role= v_series= v_films= v_film_editor= v_programs= v_early works= v_art= v_artistic_work= v_main_projects= v_p990= v_entitree=
v_whitelist_p6802= v_cllps_influenced_by= v_cllps_works= v_cllps_awards= v_cllps_participant_in=
<!-- a eliminar després -->
tesi2= tesi_any2= tesi_url2= situacio_penal=
altres_carrecs= imatge_espiritual= peu_imatge_espiritual= condecoracions=
<!-- a eliminar
-->
1= 2= 3=
|cat=Infotaules usades amb paràmetres desconeguts
|format=0|preview=1|errNS=0
}}<!-- Detectar articles sense paràmetres manuals
-->{{#if:{{{a_etiqueta|}}} {{{a_etiqueta10|}}} {{{a_etiqueta11|}}} {{{a_etiqueta2|}}} {{{a_etiqueta3|}}} {{{a_etiqueta4|}}} {{{a_etiqueta5|}}} {{{a_etiqueta6|}}} {{{a_etiqueta7|}}} {{{a_etiqueta8|}}} {{{a_etiqueta9|}}} {{{a_nom|}}} {{{a_nom10|}}} {{{a_nom11|}}} {{{a_nom2|}}} {{{a_nom3|}}} {{{a_nom4|}}} {{{a_nom5|}}} {{{a_nom6|}}} {{{a_nom7|}}} {{{a_nom8|}}} {{{a_nom9|}}} {{{agent|}}} {{{alçada|}}} {{{alies|}}} {{{altres_noms|}}} {{{alma_mater|}}} {{{alt|}}} {{{altres_ocupacions|}}} {{{arma|}}} {{{art|}}} {{{artistes_relacionats|}}} {{{autor_abrev_bot|}}} {{{autor_abrev_zoo|}}} {{{b_etiqueta|}}} {{{b_etiqueta10|}}} {{{b_etiqueta11|}}} {{{b_etiqueta2|}}} {{{b_etiqueta3|}}} {{{b_etiqueta4|}}} {{{b_etiqueta5|}}} {{{b_etiqueta6|}}} {{{b_etiqueta7|}}} {{{b_etiqueta8|}}} {{{b_etiqueta9|}}} {{{b_nom|}}} {{{b_nom10|}}} {{{b_nom11|}}} {{{b_nom2|}}} {{{b_nom3|}}} {{{b_nom4|}}} {{{b_nom5|}}} {{{b_nom6|}}} {{{b_nom7|}}} {{{b_nom8|}}} {{{b_nom9|}}} {{{batalles|}}} {{{bateig|}}} {{{bust_natural|}}} {{{cabells|}}} {{{capçalera_superior|}}} {{{camp_treball|}}} {{{lloc_treball|}}} {{{carrec|}}} {{{carrec10|}}} {{{carrec11|}}} {{{carrec2|}}} {{{carrec3|}}} {{{carrec4|}}} {{{carrec5|}}} {{{carrec6|}}} {{{carrec7|}}} {{{carrec8|}}} {{{carrec9|}}} {{{carrecs_judicials|}}} {{{casa_reial|}}} {{{cataleg|}}} {{{causa_defuncio|}}} {{{causa_mort|}}} {{{child|}}} {{{ciutadania|}}} {{{comandaments|}}} {{{condemnes|}}} {{{conegut_per|}}} {{{conjuge|}}} {{{coordenades_sepultura|}}} {{{data_defuncio|}}} {{{data_desaparicio|}}} {{{data_naixement|}}} {{{deixebles|}}} {{{designat|}}} {{{designat10|}}} {{{designat11|}}} {{{designat2|}}} {{{designat3|}}} {{{designat4|}}} {{{designat5|}}} {{{designat6|}}} {{{designat7|}}} {{{designat8|}}} {{{designat9|}}} {{{dinastia|}}} {{{discografica|}}} {{{e_etiqueta|}}} {{{e_etiqueta10|}}} {{{e_etiqueta11|}}} {{{e_etiqueta2|}}} {{{e_etiqueta3|}}} {{{e_etiqueta4|}}} {{{e_etiqueta5|}}} {{{e_etiqueta6|}}} {{{e_etiqueta7|}}} {{{e_etiqueta8|}}} {{{e_etiqueta9|}}} {{{e_nom|}}} {{{e_nom10|}}} {{{e_nom11|}}} {{{e_nom2|}}} {{{e_nom3|}}} {{{e_nom4|}}} {{{e_nom5|}}} {{{e_nom6|}}} {{{e_nom7|}}} {{{e_nom8|}}} {{{e_nom9|}}} {{{educacio|}}} {{{equips|}}} {{{escut_carrec|}}} {{{escut_carrec10|}}} {{{escut_carrec11|}}} {{{escut_carrec2|}}} {{{escut_carrec3|}}} {{{escut_carrec4|}}} {{{escut_carrec5|}}} {{{escut_carrec6|}}} {{{escut_carrec7|}}} {{{escut_carrec8|}}} {{{escut_carrec9|}}} {{{escutpeu|}}} {{{estil|}}} {{{l_occupation|}}} {{{etnia|}}} {{{extensio_carrecs_successoris|}}} {{{extensio_carrera_militar|}}} {{{extensio_guardons|}}} {{{extensio_incrustada1|}}} {{{extensio_incrustada2|}}} {{{extensio_incrustada3|}}} {{{extensio_incrustada4|}}} {{{extensio_incrustada5|}}} {{{extensio_noms_farao|}}} {{{f_etiqueta|}}} {{{f_etiqueta10|}}} {{{f_etiqueta11|}}} {{{f_etiqueta2|}}} {{{f_etiqueta3|}}} {{{f_etiqueta4|}}} {{{f_etiqueta5|}}} {{{f_etiqueta6|}}} {{{f_etiqueta7|}}} {{{f_etiqueta8|}}} {{{f_etiqueta9|}}} {{{f_nom|}}} {{{f_nom10|}}} {{{f_nom11|}}} {{{f_nom2|}}} {{{f_nom3|}}} {{{f_nom4|}}} {{{f_nom5|}}} {{{f_nom6|}}} {{{f_nom7|}}} {{{f_nom8|}}} {{{f_nom9|}}} {{{festival_berlin|}}} {{{festival_canes|}}} {{{festival_sant_sebastia|}}} {{{festival_sitges|}}} {{{fills|}}} {{{filmfare_awards|}}} {{{films|}}} {{{final|}}} {{{final10|}}} {{{final11|}}} {{{final2|}}} {{{final3|}}} {{{final4|}}} {{{final5|}}} {{{final6|}}} {{{final7|}}} {{{final8|}}} {{{final9|}}} {{{gabinet|}}} {{{gabinet10|}}} {{{gabinet11|}}} {{{gabinet2|}}} {{{gabinet3|}}} {{{gabinet4|}}} {{{gabinet5|}}} {{{gabinet6|}}} {{{gabinet7|}}} {{{gabinet8|}}} {{{gabinet9|}}} {{{genere|}}} {{{golden|}}} {{{goldenhiero|}}} {{{honors|}}} {{{horus|}}} {{{horus2|}}} {{{horushiero|}}} {{{horushiero2|}}} {{{horusprefix|}}} {{{ideologia|}}} {{{imatge|}}} {{{imatgeobra|}}} {{{influencies_de|}}} {{{influi_en|}}} {{{inici|}}} {{{inici10|}}} {{{inici11|}}} {{{inici2|}}} {{{inici3|}}} {{{inici4|}}} {{{inici5|}}} {{{inici6|}}} {{{inici7|}}} {{{inici8|}}} {{{inici9|}}} {{{instrument|}}} {{{junt_a|}}} {{{junt_a10|}}} {{{junt_a11|}}} {{{junt_a2|}}} {{{junt_a3|}}} {{{junt_a4|}}} {{{junt_a5|}}} {{{junt_a6|}}} {{{junt_a7|}}} {{{junt_a8|}}} {{{junt_a9|}}} {{{k_etiqueta|}}} {{{k_etiqueta10|}}} {{{k_etiqueta11|}}} {{{k_etiqueta2|}}} {{{k_etiqueta3|}}} {{{k_etiqueta4|}}} {{{k_etiqueta5|}}} {{{k_etiqueta6|}}} {{{k_etiqueta7|}}} {{{k_etiqueta8|}}} {{{k_etiqueta9|}}} {{{k_nom|}}} {{{k_nom10|}}} {{{k_nom11|}}} {{{k_nom2|}}} {{{k_nom3|}}} {{{k_nom4|}}} {{{k_nom5|}}} {{{k_nom6|}}} {{{k_nom7|}}} {{{k_nom8|}}} {{{k_nom9|}}} {{{l_etiqueta|}}} {{{l_etiqueta10|}}} {{{l_etiqueta11|}}} {{{l_etiqueta2|}}} {{{l_etiqueta3|}}} {{{l_etiqueta4|}}} {{{l_etiqueta5|}}} {{{l_etiqueta6|}}} {{{l_etiqueta7|}}} {{{l_etiqueta8|}}} {{{l_etiqueta9|}}} {{{l_nom|}}} {{{l_nom10|}}} {{{l_nom11|}}} {{{l_nom2|}}} {{{l_nom3|}}} {{{l_nom4|}}} {{{l_nom5|}}} {{{l_nom6|}}} {{{l_nom7|}}} {{{l_nom8|}}} {{{l_nom9|}}} {{{lema_escut|}}} {{{lleialtat|}}} {{{periode_actiu_militar|}}} {{{llengua_nom_original|}}} {{{llengua|}}} {{{lloc_defuncio|}}} {{{lloc_desaparicio|}}} {{{lloc_naixement|}}} {{{lloc_web|}}} {{{mare|}}} {{{membre_de|}}} {{{membres_anteriors|}}} {{{mestres|}}} {{{millors_films|}}} {{{monuments|}}} {{{mostra_venecia|}}} {{{moviment|}}} {{{myspace|}}} {{{nacionalitat|}}} {{{national_film_awards|}}} {{{nom_naixement|}}} {{{nom_original_lleng|}}} {{{nom_original|}}} {{{nom|}}} {{{nom_temple|}}} {{{nom_postum|}}} {{{nomen|}}} {{{nomen2|}}} {{{nomenhiero|}}} {{{nomenhiero2|}}} {{{nominat|}}} {{{nominat10|}}} {{{nominat11|}}} {{{nominat2|}}} {{{nominat3|}}} {{{nominat4|}}} {{{nominat5|}}} {{{nominat6|}}} {{{nominat7|}}} {{{nominat8|}}} {{{nominat9|}}} {{{notes|}}} {{{obres_notables|}}} {{{obres|}}} {{{ocupacio|}}} {{{ocupacioWD|}}} {{{ocupador|}}} {{{organitzacio|}}} {{{oponents|}}} {{{oponents10|}}} {{{oponents11|}}} {{{oponents2|}}} {{{oponents3|}}} {{{oponents4|}}} {{{oponents5|}}} {{{oponents6|}}} {{{oponents7|}}} {{{oponents8|}}} {{{oponents9|}}} {{{orquestres|}}} {{{pare|}}} {{{parella|}}} {{{parents|}}} {{{pares|}}} {{{germans|}}} {{{partit_politic|}}} {{{patrons|}}} {{{patrocinador|}}} {{{periode_actiu_militar|}}} {{{periode_actiu|}}} {{{pes|}}} {{{peu|}}} {{{peuobra|}}} {{{predecessor|}}} {{{predecessor10|}}} {{{predecessor11|}}} {{{predecessor2|}}} {{{predecessor3|}}} {{{predecessor4|}}} {{{predecessor5|}}} {{{predecessor6|}}} {{{predecessor7|}}} {{{predecessor8|}}} {{{predecessor9|}}} {{{prefix_honorific|}}} {{{premis|}}} {{{prenomen|}}} {{{prenomen2|}}} {{{prenomenhiero|}}} {{{prenomenhiero2|}}} {{{principals_projectes|}}} {{{editor|}}} {{{programes|}}} {{{proposit|}}} {{{rang|}}} {{{registre_veu|}}} {{{religio|}}} {{{repertori|}}} {{{residencia|}}} {{{salari|}}} {{{sepultura|}}} {{{series|}}} {{{signatura|}}} {{{subheader|}}} {{{successor|}}} {{{successor10|}}} {{{successor11|}}} {{{successor2|}}} {{{successor3|}}} {{{successor4|}}} {{{successor5|}}} {{{successor6|}}} {{{successor7|}}} {{{successor8|}}} {{{successor9|}}} {{{sufix_honorific|}}} {{{talla_penis|}}} {{{titol_personal|}}} {{{trajectoria|}}} {{{ulls|}}} {{{unitat|}}} {{{valor_net|}}} {{{veu|}}} {{{victories|}}} {{{tesi|}}} {{{tesi_any|}}} {{{tesi_url|}}} {{{direccio_tesi|}}} {{{idees|}}} {{{interessos|}}} {{{opositors|}}} {{{estudiants_doctorals|}}} {{{nom_ploma|}}} {{{primeres_obres|}}} {{{papers|}}} {{{membres|}}} {{{socis|}}} {{{president|}}} {{{vicepresident|}}} {{{direccio_tesi2|}}} {{{director_musical|}}} {{{sotsdirector_musical|}}} {{{nebty|}}} {{{nebtyhiero|}}} {{{instruments_destacats|}}} {{{ordre|}}} {{{ordre2|}}} {{{ordre3|}}} {{{ordre4|}}} {{{ordre5|}}} {{{ordre6|}}} {{{ordre7|}}} {{{ordre8|}}} {{{ordre9|}}} {{{ordre10|}}} {{{ordre11|}}} {{{temps_espai|}}} {{{tripulacio|}}} {{{missio_espacial|}}} {{{insignia_missio|}}} {{{eva1|}}} {{{decat|}}} {{{item|}}} {{{lang|}}} {{{cronologia|}}} {{{arxius|}}} {{{identificadors|}}} {{{copilot|}}} {{{wikidata|}}} {{{epoca|}}} {{{llengua_materna|}}} {{{l_memorials|}}} {{{l_employer|}}} {{{l_family|}}} {{{floruit|}}} {{{participa_en|}}} {{{circumstancia_defuncio|}}} {{{unit_P2048|}}} {{{unit_P2067|}}} {{{list_naixement|}}} {{{tesi2|}}} {{{tesi_any2|}}} {{{tesi_url2|}}} {{{situacio_penal|}}} {{{altres_carrecs|}}} {{{imatge_espiritual|}}} {{{peu_imatge_espiritual|}}} {{{condecoracions|}}} {{{patronatge|}}} {{{data_beatificacio|}}} {{{data_canonitzacio|}}} {{{venerat_en|}}} {{{venerat_a|}}} {{{lloc_canonitzacio|}}} {{{enaltiment|}}} {{{lloc_beatificacio|}}} {{{beatificat_per|}}} {{{canonitzat_per|}}} {{{fets_destacables|}}} {{{festivitat|}}} {{{lloc_pelegrinatge|}}} {{{iconografia|}}} {{{fets_destacables|}}} {{{patronatge|}}} {{{lloc_debut|}}} {{{data_debut|}}} {{{lloc_retirada|}}} {{{data_retirada|}}} {{{lliga|}}} {{{dades_medaller|}}} {{{club_actual|}}} {{{posicio_equip|}}} {{{dorsal_club|}}} {{{posicio_equip|}}} {{{lateralitat|}}} {{{ma_joc|}}} {{{draft|}}} {{{draft_equip|}}} {{{draft_any|}}} {{{esport|}}} {{{disciplina|}}} {{{classe|}}} {{{draft_equip|}}} {{{draft_any|}}} {{{entrenador|}}} {{{convoca_internacional|}}} {{{patrimoni_personal|}}} {{{extensio_parametres_esport|}}} {{{extensio_carrera_esportiva|}}} {{{extensio_participacio_esdeveniments|}}} {{{titol_escacs|}}} {{{elo_max|}}} {{{patrocinador_material|}}} {{{nacionalitat_esportiva|}}} {{{desplega_premis|}}} {{{desplega_obres|}}} {{{desplega_influencia|}}} {{{extensio_atributs_professionals|}}} {{{extensio_activitat_professional|}}}||[[categoria:Infotaula persona sense paràmetres]] }}<!--
rastreig provisional de paràmetres
-->{{#if:{{{carrec|}}}{{{carrec2|}}}{{{carrec3|}}}{{{carrec4|}}}{{{carrec5|}}}{{{carrec6|}}} {{{carrec7|}}}{{{carrec8|}}}{{{carrec9|}}}{{{carrec10|}}}
|{{#if:{{#property:P39 | from={{{item|}}} }} | [[categoria:Articles amb càrrecs manuals i P39]]
| [[categoria:Articles amb càrrecs manuals sense P39]]}} }}<!--
-->{{#if:{{{carrec|}}}
|{{#if:{{{carrec2|}}}{{{carrec3|}}}{{{carrec4|}}}{{{carrec5|}}}{{{carrec6|}}} {{{carrec7|}}}|<!-- ni ha +1, saltar
-->|{{#invoke:utilitats|rastreig|Infotaula_persona/1carrec}}}} }}<!--
-->{{#if:{{{extensio_guardons|}}}|{{#invoke:utilitats|rastreig|Infotaula_persona/premis_manuals}}}}<!-- 1100 aprx
-->{{#if:{{{carrecs_judicials|}}}|{{#invoke:utilitats|rastreig|Infotaula_persona/carrecs_judicials}}}}<!-- 4
-->{{#if:{{{condemnes|}}}|{{#invoke:utilitats|rastreig|Infotaula_persona/condemnes}}}}<!-- 21
-->{{#if:{{{data_defuncio|}}}
|{{#if:{{#invoke:Wikidades | claim | property=P570 }}|<!-- res -->|{{#invoke:utilitats|rastreig|Infotaula_persona/recuperarDD}} }}}}<!-- 325
-->{{#ifexpr: {{str find|{{lc:{{#property:P31|from={{{item|}}} }}}}|grup}} +
{{str find|{{lc:{{#property:P31|from={{{item|}}} }}}}|col·lectiu}} +
{{str find|{{lc:{{#property:P31|from={{{item|}}} }}}}|cor}} > 0
|{{#invoke:utilitats|rastreig|Infotaula_persona/grup}} }}<!-- 89
-->{{#if:{{{notes|}}}|{{#invoke:utilitats|rastreig|Infotaula_persona/notes}}}} <!--
--><!-- Paràmetres manuals candidats a ser eliminats
-->{{#if:
{{{oponents|}}} {{{a_etiqueta|}}} {{{a_nom|}}} {{{b_etiqueta|}}} {{{b_nom|}}} {{{e_etiqueta|}}} {{{e_nom|}}} {{{f_etiqueta|}}}{{{f_nom|}}}
{{{l_etiqueta|}}} {{{l_nom|}}}
{{{a_etiqueta2|}}} {{{a_nom2|}}} {{{b_etiqueta2|}}} {{{b_nom2|}}} {{{e_etiqueta2|}}} {{{e_nom2|}}} {{{f_etiqueta2|}}}{{{f_nom2|}}} {{{l_etiqueta2|}}} {{{l_nom2|}}}
{{{a_etiqueta3|}}} {{{a_nom3|}}} {{{b_etiqueta3|}}} {{{b_nom3|}}} {{{e_etiqueta3|}}} {{{e_nom3|}}} {{{f_etiqueta3|}}}{{{f_nom3|}}}
{{{l_etiqueta3|}}} {{{l_nom3|}}}
{{{a_etiqueta4|}}} {{{a_nom4|}}} {{{b_etiqueta4|}}} {{{b_nom4|}}} {{{e_etiqueta4|}}} {{{e_nom4|}}} {{{f_etiqueta4|}}}{{{f_nom4|}}}
{{{l_etiqueta4|}}} {{{l_nom4|}}}
{{{a_etiqueta5|}}} {{{a_nom5|}}} {{{b_etiqueta5|}}} {{{b_nom5|}}} {{{e_etiqueta5|}}} {{{e_nom5|}}} {{{f_etiqueta5|}}}{{{f_nom5|}}}
{{{l_etiqueta5|}}} {{{l_nom5|}}}
{{{a_etiqueta6|}}} {{{a_nom6|}}} {{{b_etiqueta6|}}} {{{b_nom6|}}} {{{e_etiqueta6|}}} {{{e_nom6|}}} {{{f_etiqueta6|}}}{{{f_nom6|}}}
{{{l_etiqueta6|}}} {{{l_nom6|}}}
{{{a_etiqueta7|}}} {{{a_nom7|}}} {{{b_etiqueta7|}}} {{{b_nom7|}}} {{{e_etiqueta7|}}} {{{e_nom7|}}} {{{f_etiqueta7|}}}{{{f_nom7|}}}
{{{l_etiqueta7|}}} {{{l_nom7|}}}
|{{#invoke:utilitats|rastreig|Infotaula_persona/eticarrecs}}}}<!--
-->{{#if:{{{k_etiqueta|}}} |{{#ifeq:{{{k_etiqueta|}}} |Circumscripció|{{#invoke:utilitats|rastreig|Infotaula_persona/eticarrecs}}}}}}<!--
-->{{#if:{{{k_etiqueta2|}}}|{{#ifeq:{{{k_etiqueta2|}}}|Circumscripció|{{#invoke:utilitats|rastreig|Infotaula_persona/eticarrecs}}}}}}<!--
-->{{#if:{{{k_etiqueta3|}}}|{{#ifeq:{{{k_etiqueta3|}}}|Circumscripció|{{#invoke:utilitats|rastreig|Infotaula_persona/eticarrecs}}}}}}<!--
-->{{#if:{{{k_etiqueta4|}}}|{{#ifeq:{{{k_etiqueta4|}}}|Circumscripció|{{#invoke:utilitats|rastreig|Infotaula_persona/eticarrecs}}}}}}<!--
-->{{#if:{{{k_etiqueta5|}}}|{{#ifeq:{{{k_etiqueta5|}}}|Circumscripció|{{#invoke:utilitats|rastreig|Infotaula_persona/eticarrecs}}}}}}<!--
-->{{#if:{{{k_etiqueta6|}}}|{{#ifeq:{{{k_etiqueta6|}}}|Circumscripció|{{#invoke:utilitats|rastreig|Infotaula_persona/eticarrecs}}}}}}<!--
-->{{#if:{{{k_etiqueta7|}}}|{{#ifeq:{{{k_etiqueta7|}}}|Circumscripció|{{#invoke:utilitats|rastreig|Infotaula_persona/eticarrecs}}}}}}<!--
-->{{#if:{{{premis|{{{guardons|}}}}}}|{{#invoke:utilitats|rastreig|Infotaula_persona/premis-condecoracions}}}}<!-- 569
-->{{#if: {{{educacio|}}} | {{#invoke:utilitats|rastreig|Infotaula_persona/educacio}}}}<!-- 160
-->{{#if: {{{instruments_destacats|}}} | {{#invoke:utilitats|rastreig|Infotaula_persona/instruments_destacats}}}}<!-- 48
-->{{#if: {{{organitzacio|}}} | {{#invoke:utilitats|rastreig|Infotaula_persona/organitzacio}}}}<!-- 1070
-->{{#if: {{{mitjans|}}} | {{#invoke:utilitats|rastreig|Infotaula_persona/mitjans}}}}<!-- 166
-->{{#if: {{{club_actual|{{{clubactual|{{{currentclub|}}}}}}}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/clubactual}}}}<!-- 6072
-->{{#if: {{{era|}}}{{{regio|}}}{{{escola_tradicio|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/regio-escola}}}}<!-- 63
-->{{#if: {{{monuments|}}} | {{#invoke:utilitats|rastreig|Infotaula_persona/monuments}}}}<!-- 28
-->{{#if: {{{orquestres|}}}{{{artistes_relacionats|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/orquestres}}}}<!-- 285
-->{{#if: {{{idees|}}} | {{#invoke:utilitats|rastreig|Infotaula_persona/idees}}}}<!-- 32
-->{{#if:{{{unitat|}}}{{{victories|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/unitat_victories}}}}<!-- 130
-->{{#if: {{{periode_actiu_militar|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/periode_militar}}}}<!-- 53
-->{{#if:{{{estil|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/estil}}}}<!-- 80
-->{{#if:{{{millors_films|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/millors_films}}}}<!-- 40
-->{{#if:{{{nom_original|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/nom_original}}}}<!-- 130
-->{{#if:{{{altres_ocupacions|}}}{{{altres_carrecs|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/altres ocupacions}}}}<!-- 265
-->{{#if:{{{editor|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/editor}}}}<!-- 3
-->{{#if:{{{primeres_obres|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/primeres_obres}}}}<!-- 81
-->{{#if:{{{obres|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/obres}}<!-- 55
-->{{#if:{{{obres_notables|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/obres_i_notables}}}}}}<!--
-->{{#if:{{{tematica|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/tematica}}}}<!-- 119
-->{{#if:{{{programes|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/programes}}}}<!-- 29
-->{{#if:{{{equips|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/equips}}}}<!--
-->{{#if:{{{art|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/art}}}}<!-- 1222 revisar amb professió
-->{{#if:{{{lloc_debut|}}}{{{data_debut|}}}{{{lloc_retirada|}}}{{{data_retirada|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/debut}}}}<!-- 151
-->{{#if:{{{conegut_per|}}} | {{#ifexpr:{{str find|{{{conegut_per|}}}|llegend}} + {{str find|{{{conegut_per|}}}|dubt}} +
{{str find|{{{conegut_per|}}}|inexis}} > 0
| {{#invoke:utilitats|rastreig|Infotaula_persona/llegendari}}}} }}<!-- 89
-->{{#if:{{{imatge|}}}
|{{#if:{{#invoke:Wikidades | claim | property=P18 }}|<!-- res -->|{{#invoke:utilitats|rastreig|Infotaula_persona/imatge_per_WD}} }}}}<!--
-->{{#if:{{{conegut_per|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/conegut_per}}}}<!-- 4541
-->{{#if:{{{patrons|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/patrons}}}}<!-- 42
-->{{#if:{{{films|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/films}}}}<!-- 20
-->{{#if:{{{principals_projectes|}}} |{{#invoke:utilitats|rastreig|Infotaula_persona/principals_projectes}}}}<!-- <50
--></includeonly><noinclude>
k4c2opjclkig6ghmb2pma220ctjwx73
142834
142833
2026-06-25T17:02:48Z
آیات محراج
11062
/* */
142834
wikitext
text/x-wiki
#REDIRECT [[فرما:infobox person/Wikidata]]
83t3stv6d8iz0s1x8tjty8jl3bh5ntc
2026 لیبر پارٹی لیٖڈرشِپ بحران
0
31099
142904
2026-06-26T06:08:05Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1361164088|2026 Labour Party leadership crisis]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142904
wikitext
text/x-wiki
2026 ہَس منٛز پیوٚو [[برطانوی لیبر پارٹی]] [[برطانیہُک ؤزیٖرِ اعظم|وزیر اعظم]] سر [[کِیٔر سٹارمر|کیر سٹارمرَس]] سۭتۍ عدم اطمینان تہٕ خراب مقٲمی چُناو ہٕنٛدِ نٔتیٖجہِ کِنۍ قیادتُک بحرانُک سامنہٕ۔ امہِ عدم اطمینانی کِس وجہہ سۭتۍ گٔیہِ تٔمۍ سٕنٛدِ اِستیٖفہٕ تہٕ اہم شخصیاتن ہٕنٛدِ نیرنُک مُطالبہٕ، یِمن منٛز ہیلتھ سیکریٹری ویس سٹریٹنگ تہِ شٲمِل چھِ۔ 14 مئی دِیُت جوش سائمنزَن اینڈی برنہمَس قیادتَس خٲطرٕ ضمنی انتخابَس منٛز حصہٕ نِنَس قٲبل بناونہٕ خٲطرٕ اِستیٖفہٕ۔ دِفٲعی اخراجاتَن ہٕنٛدِس تنازعَس پیٹھ مزید اِستیٖفہٕ پتہٕ کوٚر سٹارمرَن 22 جوٗن پننہِ استعفیُک اعلان۔ قیادتٕکۍ انتخابَن خٲطرٕ نامزدگی آیہِ 9 جولائی کھولنہٕ تہٕ 16 جولائی بند گژھن واجنہِ، برنہمَن دِیُت تٔمۍ سٕنٛدِ انتخاب لڑنُک ارادٕ تہٕ سٹریٹنگَن کوٚر نہٕ الیکشن لڑنُک انتخاب۔<ref>{{Cite web|last1=Doherty|first1=Caitlin|last2=Yeung|first2=Tinshui|last3=Zeffman|first3=Henry|date=22 June 2026|title=Keir Starmer resigns as prime minister and leader of Labour Party|url=https://www.bbc.co.uk/news/live/ckger03mrl0t|access-date=22 June 2026|website=BBC News|language=en-GB}}</ref>
mkjvc7eck1h197pwyqvvn51ymp09www
142906
142904
2026-06-26T06:17:08Z
آیات محراج
11062
مِلاوُن [[زٲژ:2026 واقعات]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
142906
wikitext
text/x-wiki
{{مولوٗماتھ
| bgcolor = Lavender
}}
2026 ہَس منٛز پیوٚو [[برطانوی لیبر پارٹی]] [[برطانیہُک ؤزیٖرِ اعظم|وزیر اعظم]] سر [[کِیٔر سٹارمر|کیر سٹارمرَس]] سۭتۍ عدم اطمینان تہٕ خراب مقٲمی چُناو ہٕنٛدِ نٔتیٖجہِ کِنۍ قیادتُک بحرانُک سامنہٕ۔ امہِ عدم اطمینانی کِس وجہہ سۭتۍ گٔیہِ تٔمۍ سٕنٛدِ اِستیٖفہٕ تہٕ اہم شخصیاتن ہٕنٛدِ نیرنُک مُطالبہٕ، یِمن منٛز ہیلتھ سیکریٹری ویس سٹریٹنگ تہِ شٲمِل چھِ۔ 14 مئی دِیُت جوش سائمنزَن اینڈی برنہمَس قیادتَس خٲطرٕ ضمنی انتخابَس منٛز حصہٕ نِنَس قٲبل بناونہٕ خٲطرٕ اِستیٖفہٕ۔ دِفٲعی اخراجاتَن ہٕنٛدِس تنازعَس پیٹھ مزید اِستیٖفہٕ پتہٕ کوٚر سٹارمرَن 22 جوٗن پننہِ استعفیُک اعلان۔ قیادتٕکۍ انتخابَن خٲطرٕ نامزدگی آیہِ 9 جولائی کھولنہٕ تہٕ 16 جولائی بند گژھن واجنہِ، برنہمَن دِیُت تٔمۍ سٕنٛدِ انتخاب لڑنُک ارادٕ تہٕ سٹریٹنگَن کوٚر نہٕ الیکشن لڑنُک انتخاب۔<ref>{{Cite web|last1=Doherty|first1=Caitlin|last2=Yeung|first2=Tinshui|last3=Zeffman|first3=Henry|date=22 June 2026|title=Keir Starmer resigns as prime minister and leader of Labour Party|url=https://www.bbc.co.uk/news/live/ckger03mrl0t|access-date=22 June 2026|website=BBC News|language=en-GB}}</ref>
==حَوالہٕ==
[[زٲژ:2026 واقعات]]
6l5ckpfeeth38s6z6wwvfkafe85aoc0
142907
142906
2026-06-26T06:19:14Z
آیات محراج
11062
/* */
142907
wikitext
text/x-wiki
{{مولوٗماتھ
| bgcolor = Lavender
| تَصویٖر = Keir Starmer and Andy Burnham (55204794065).jpg
}}
2026 ہَس منٛز پیوٚو [[برطانوی لیبر پارٹی]] [[برطانیہُک ؤزیٖرِ اعظم|وزیر اعظم]] سر [[کِیٔر سٹارمر|کیر سٹارمرَس]] سۭتۍ عدم اطمینان تہٕ خراب مقٲمی چُناو ہٕنٛدِ نٔتیٖجہِ کِنۍ قیادتُک بحرانُک سامنہٕ۔ امہِ عدم اطمینانی کِس وجہہ سۭتۍ گٔیہِ تٔمۍ سٕنٛدِ اِستیٖفہٕ تہٕ اہم شخصیاتن ہٕنٛدِ نیرنُک مُطالبہٕ، یِمن منٛز ہیلتھ سیکریٹری ویس سٹریٹنگ تہِ شٲمِل چھِ۔ 14 مئی دِیُت جوش سائمنزَن اینڈی برنہمَس قیادتَس خٲطرٕ ضمنی انتخابَس منٛز حصہٕ نِنَس قٲبل بناونہٕ خٲطرٕ اِستیٖفہٕ۔ دِفٲعی اخراجاتَن ہٕنٛدِس تنازعَس پیٹھ مزید اِستیٖفہٕ پتہٕ کوٚر سٹارمرَن 22 جوٗن پننہِ استعفیُک اعلان۔ قیادتٕکۍ انتخابَن خٲطرٕ نامزدگی آیہِ 9 جولائی کھولنہٕ تہٕ 16 جولائی بند گژھن واجنہِ، برنہمَن دِیُت تٔمۍ سٕنٛدِ انتخاب لڑنُک ارادٕ تہٕ سٹریٹنگَن کوٚر نہٕ الیکشن لڑنُک انتخاب۔<ref>{{Cite web|last1=Doherty|first1=Caitlin|last2=Yeung|first2=Tinshui|last3=Zeffman|first3=Henry|date=22 June 2026|title=Keir Starmer resigns as prime minister and leader of Labour Party|url=https://www.bbc.co.uk/news/live/ckger03mrl0t|access-date=22 June 2026|website=BBC News|language=en-GB}}</ref>
==حَوالہٕ==
[[زٲژ:2026 واقعات]]
giorbkdxohsrh661n47hk5r43zaz9t3
2026 لیبر پارٹی ہُنٛد قیادتُک بحران
0
31100
142905
2026-06-26T06:10:07Z
آیات محراج
11062
رَجوٗع مُکَرر تَخلیٖق کَران
142905
wikitext
text/x-wiki
#REDIRECT [[2026_لیبر_پارٹی_لیٖڈرشِپ_بحران]]
t3dfoqjba0gypmbm7s33gzfow2dl9ei
نیون
0
31101
142909
2026-06-26T06:44:38Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1356445177|Neon]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142909
wikitext
text/x-wiki
نیون چھُ اکھ [[رسایٚن تۄتھ]] (نِشان Ne، ایٹم نمبر 10)۔ بطور اکھ نایاب، بے رنگ [[نوبل گیس]]، یہٕ چُھ بجلی دِنہٕ وِزِ اکھ تیز وۄزلہٕ رنگہٕ سنگترۍ چمک ترٛاونہٕ خٲطرٕ مشہوٗر۔یہٕ چھ پیریڈک ٹیبلک دیم نوبل گیس
sajrw6cbzc9o4wjyvs51h31q69uwncj
142910
142909
2026-06-26T06:45:39Z
آیات محراج
11062
/* */
142910
wikitext
text/x-wiki
نیون چھُ اکھ [[رسایٚن تۄتھ]] (نِشان Ne، ایٹم نمبر 10)۔ بطور اکھ نایاب، بے رنگ [[نوبل گیس]]، یہٕ چُھ بجلی دِنہٕ وِزِ اکھ تیز وۄزلہٕ رنگہٕ سنگترۍ چمک ترٛاونہٕ خٲطرٕ مشہوٗر۔یہٕ چھ پیریڈک ٹیبلک دۆیِم نوبل گیس.<ref>Group 18 refers to the modern numbering of the periodic table. Older numberings described the rare gases as Group 0 or Group VIIIA (sometimes shortened to 8). See also [[Group (periodic table)]].</ref>
bdyr32119adtalpoo7wnt0q5wqgdwhs
142911
142910
2026-06-26T06:46:43Z
آیات محراج
11062
مِلاوُن [[زٲژ:رساێن تۄتھ]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
142911
wikitext
text/x-wiki
{{Infobox element|color=Yellow}}
'''نیون''' چھُ اکھ [[رسایٚن تۄتھ]] (نِشان Ne، ایٹم نمبر 10)۔ بطور اکھ نایاب، بے رنگ [[نوبل گیس]]، یہٕ چُھ بجلی دِنہٕ وِزِ اکھ تیز وۄزلہٕ رنگہٕ سنگترۍ چمک ترٛاونہٕ خٲطرٕ مشہوٗر۔یہٕ چھ پیریڈک ٹیبلک دۆیِم نوبل گیس.<ref>Group 18 refers to the modern numbering of the periodic table. Older numberings described the rare gases as Group 0 or Group VIIIA (sometimes shortened to 8). See also [[Group (periodic table)]].</ref>
== حَوالہٕ ==
[[زٲژ:رساێن تۄتھ]]
ktxjz7n0fw2pr0zuz4s8qot9g0ejnq4
میگنیشیم
0
31102
142913
2026-06-26T06:53:58Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1360705618|Magnesium]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142913
wikitext
text/x-wiki
میگنیشیم چھُ اکھ ضروری مِنرَل تہٕ [[رسایٚن تۄتھ]] (نِشان Mg، ایٹم نمبر 12)۔ یہِ چُھ اِنسٲنی صحتہٕ خٲطرٕ ضروری، یُس 300 کھۄتہٕ زِیٛادٕ بایو کیمیٲیی ردعملن منٛز أکِس کوفیکٹر پٲٹھۍ کٲم کران چھُ، یَتھ منٛز [[مَژھ|مژھہٕ]] تہٕ نٲر کٲم، [[خوٗنُک دَباو|بلڈ پریشر ریگولیشن]]، تہٕ توانٲیی ہٕنٛز پٲداوار شٲمِل چھِ۔یہ چھُ اکھ چمکدار سوٗرؠ رَنٛگ در [[داتھ]] یتھ کم کثافت، کم کُملُن مقام، تہٕ تھٔز کیٖمیٲیی رد عمل چھِ۔
pca3l23uni9f82ob11psfjyiymb423n
142914
142913
2026-06-26T06:54:25Z
آیات محراج
11062
/* */
142914
wikitext
text/x-wiki
میگنیشیم چھُ اکھ ضروری مِنرَل تہٕ [[رسایٚن تۄتھ]] (نِشان Mg، ایٹم نمبر 12)۔ یہ چھُ اکھ چمکدار سوٗرؠ رَنٛگ در [[داتھ]] یتھ کم کثافت، کم کُملُن مقام، تہٕ تھٔز کیٖمیٲیی رد عمل چھِ۔ یہِ چُھ اِنسٲنی صحتہٕ خٲطرٕ ضروری، یُس 300 کھۄتہٕ زِیٛادٕ بایو کیمیٲیی ردعملن منٛز أکِس کوفیکٹر پٲٹھۍ کٲم کران چھُ، یَتھ منٛز [[مَژھ|مژھہٕ]] تہٕ نٲر کٲم، [[خوٗنُک دَباو|بلڈ پریشر ریگولیشن]]، تہٕ توانٲیی ہٕنٛز پٲداوار شٲمِل چھِ۔
8nyljpnx81dgrsqjfmk9wyz7y0ijr23
142915
142914
2026-06-26T06:58:50Z
آیات محراج
11062
مِلاوُن [[زٲژ:رساێن تۄتھ]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
142915
wikitext
text/x-wiki
{{Infobox element|color=Yellow}}
'''میگنیشیم''' چھُ اکھ ضروری مِنرَل تہٕ [[رسایٚن تۄتھ]] (نِشان Mg، ایٹم نمبر 12)۔ یہ چھُ اکھ چمکدار سوٗرؠ رَنٛگ در [[داتھ]] یتھ کم کثافت، کم کُملُن مقام، تہٕ تھٔز کیٖمیٲیی رد عمل چھِ۔ یہِ چُھ اِنسٲنی صحتہٕ خٲطرٕ ضروری، یُس 300 کھۄتہٕ زِیٛادٕ بایو کیمیٲیی ردعملن منٛز أکِس کوفیکٹر پٲٹھۍ کٲم کران چھُ، یَتھ منٛز [[مَژھ|مژھہٕ]] تہٕ نٲر کٲم، [[خوٗنُک دَباو|بلڈ پریشر ریگولیشن]]، تہٕ توانٲیی ہٕنٛز پٲداوار شٲمِل چھِ۔<ref>{{cite news |url=https://www.seafriends.org.nz/oceano/seawater.htm#composition |title=The chemical composition of seawater |author=Anthoni, J. Floor |date=2006 |website=Seafriends}}</ref>
== حَوالہٕ ==
[[زٲژ:رساێن تۄتھ]]
6t1kyu56aza54dmgue9zsvym1eglka4
اَلموٗنیم
0
31103
142916
2026-06-26T07:07:05Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1356806311|Aluminium]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142916
wikitext
text/x-wiki
اَلموٗنیم یا ایلومینیم (نِشان Al، ایٹم نمبر 13) چھُ اکھ رۄپہٕ سفید، ہلکہ وزن، تہٕ انتہٲیی سنکنرن مزاحم [[داتھ]]۔ یہٕ چُھ زمین کس پرتس منٛز ساروی کھوتہٕ زیادٕ مؠقدارُک داتھ، حالانکہ یہٕ چُھ نہٕ زانٛہہ تہٕ قۄدرتس منٛز پننہٕ شۄد [[رسایٚن تۄتھ|تۄتہٕ]] شکلہٕ منٛز آسان۔
اکیہمہٕ صدی منٛز، زیادٕ تر ایلومینیم اوس امریکہ، مغربی یورپ تہٕ جاپانس منٛز اور یور سٔہوٗلیت، انجینئرنگ، تعمیر تہٕ پیکیجنگ منٛز استعمال یوان کرنہٕ۔
ماحولس منٛز امک پھۄہلاوٕ باوُجوٗد، کینٛہہ تہٕ جاندار چیز چھُنہٕ ایلومینیمک نوٗن میٹابولایز کرنہٕ خاطرٕ زاننہٕ یوان، مگر ایلومینیم چھُ [[کُل|کُلؠن]] تہٕ [[جانوَر|جانورن]] ہنٛد ذریعہٕ اصل پأٹھۍ برداشت یوان کرنہٕ۔ یمن نوٗنن ہنٛز کثرت کہ وجہ سۭتۍ، یمن خٲطرٕ حیاتیاتی کردارک امکان چھِ دلچسپی ہِنٛدؠ کارنہٕ، تہٕ مطالعہٕ چھُ جٲری۔
7q1kkai7kjs0kswh8xhomixb3g5hm9w
142918
142916
2026-06-26T07:09:47Z
آیات محراج
11062
مِلاوُن [[زٲژ:رساێن تۄتھ]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
142918
wikitext
text/x-wiki
{{Infobox element|color=Yellow}}
'''اَلموٗنیم''' یا '''ایلومینیم''' (نِشان Al، ایٹم نمبر 13) چھُ اکھ رۄپہٕ سفید، ہلکہ وزن، تہٕ انتہٲیی سنکنرن مزاحم [[داتھ]]۔ یہٕ چُھ زمین کس پرتس منٛز ساروی کھوتہٕ زیادٕ مؠقدارُک داتھ، حالانکہ یہٕ چُھ نہٕ زانٛہہ تہٕ قۄدرتس منٛز پننہٕ شۄد [[رسایٚن تۄتھ|تۄتہٕ]] شکلہٕ منٛز آسان۔
اکیہمہٕ صدی منٛز، زیادٕ تر ایلومینیم اوس امریکہ، مغربی یورپ تہٕ جاپانس منٛز اور یور سٔہوٗلیت، انجینئرنگ، تعمیر تہٕ پیکیجِنٛگ منٛز استعمال یوان کرنہٕ۔ <ref name="ReynoldsKitchens">{{Cite web
|title=Heavy Duty Foil
|url=https://www.reynoldskitchens.com/products/aluminum-foil/heavy-duty-foil/|website=Reynolds Kitchens|language=en|access-date=20 September 2020
|archive-date=23 September 2020|archive-url=https://web.archive.org/web/20200923185810/https://www.reynoldskitchens.com/products/aluminum-foil/heavy-duty-foil/ |url-status=live}}</ref>
ماحولس منٛز امک پھۄہلاوٕ باوُجوٗد، کینٛہہ تہٕ جاندار چیز چھُنہٕ ایلومینیمک نوٗن میٹابولایز کرنہٕ خاطرٕ زاننہٕ یوان، مگر ایلومینیم چھُ [[کُل|کُلؠن]] تہٕ [[جانوَر|جانورن]] ہنٛد ذریعہٕ اصل پأٹھۍ برداشت یوان کرنہٕ۔ یمن نوٗنن ہنٛز کثرت کہ وجہ سۭتۍ، یمن خٲطرٕ حیاتیاتی کردارک امکان چھِ دلچسپی ہِنٛدؠ کارنہٕ، تہٕ مطالعہٕ چھُ جٲری۔
==حَوالہٕ==
[[زٲژ:رساێن تۄتھ]]
tl746leoo3gl9wlui59e2vbz4g3hl3v
ایلومینیم
0
31104
142917
2026-06-26T07:07:24Z
آیات محراج
11062
رَجوٗع مُکَرر تَخلیٖق کَران
142917
wikitext
text/x-wiki
#REDIRECT [[اَلموٗنیم]]
sfk9ri5iqsua9q042gfs95vjw45eheh
2024 اَمریٖکی صٔدرٲتی چُناو
0
31105
142919
2026-06-26T07:20:21Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1360091974|2024 United States presidential election]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142919
wikitext
text/x-wiki
{{Infobox election}}
[[اَمریٖکہ|ریاستہاے متحدَس]] منٛز آیہِ 5 نومبر 2024 صدٲرتی چُناو منعقد کرنہٕ۔ سٲبقہٕ صدر [[ڈونلڈ جان ٹرمپ|ڈونلڈ ٹرمپ]] تہٕ اوہایو جونیئر سینیٹر [[جے ڈی وینس]] سٕنٛزِ ریپبلکن ٹکٹن دِژ موجودٕ نٲیِب صدر [[کملا ہیرِس]] تہٕ [[مینیسوٹا|منیسوٹا]] ہٕکۍ گورنر [[ٹِم والز]] سٕنٛدِ ڈیموکریٹک ٹکٹ شکست۔<ref>{{Cite news|last1=Gold|first1=Michael|last2=Nehamas|first2=Nicholas|date=March 13, 2024|title=Donald Trump and Joe Biden Clinch Their Party Nominations|url=https://www.nytimes.com/2024/03/12/us/politics/trump-republican-nomination.html|access-date=March 13, 2024|work=[[The New York Times]]|archive-date=March 13, 2024|archive-url=https://web.archive.org/web/20240313034919/https://www.nytimes.com/2024/03/12/us/politics/trump-republican-nomination.html|url-status=live}}</ref>
igcop4tgaxk5eky1qc4kwr65p3tu6r0
Module:Wikidades/Units
828
31106
142921
2026-06-26T08:38:48Z
آیات محراج
11062
Created page with "-- syntax: -- Qxxx = { -- label from Wikidata, as a reference -- label = "label fixed", -- plural = "plural fixed", -- ucode = "unit code to add or to fix", -- }, local wikidata_units = { Q531 = { -- light year label = "نوٗری ؤری", plural = "نوٗری ؤری", }, Q573 = { -- day label = "دۄہ", ucode = "دۄہ", }, Q4917 = { -- US dollar label = "اَمریٖکی ڈالَر", ucode = "$", }, Q5151 = { -- month label =..."
142921
Scribunto
text/plain
-- syntax:
-- Qxxx = { -- label from Wikidata, as a reference
-- label = "label fixed",
-- plural = "plural fixed",
-- ucode = "unit code to add or to fix",
-- },
local wikidata_units = {
Q531 = { -- light year
label = "نوٗری ؤری",
plural = "نوٗری ؤری",
},
Q573 = { -- day
label = "دۄہ",
ucode = "دۄہ",
},
Q4917 = { -- US dollar
label = "اَمریٖکی ڈالَر",
ucode = "$",
},
Q5151 = { -- month
label = "رؠتھ",
plural = "رؠتھ",
},
Q11229 = { -- percentage
label = "فیٖصَد",
plural = "فیٖصَد",
ucode = "%",
},
Q11573 = { -- metre
label = "میٖٹَر",
ucode = "m",
},
Q25267 = { -- degree Celsius
label = "ڈِگری سؠلشِیَس",
plural = "ڈِگری سؠلشِیَس",
},
Q42289 = { -- degree Fahrenheit
label = "ڈِگری فارَنہایِٹ",
plural = "ڈِگری فارَنہایِٹ",
},
Q55627 = { -- DALY
label = "مَعزوٗری سۭتؠ مُطابِق کَرنہٕ آمُت زِندگی ہُنٛد ؤری",
plural = "مَعزوٗری سۭتؠ مُطابِق کَرنہٕ آمُت زِندگی ہُنٛد ؤری",
ucode = "AVAD",
},
Q83327 = { -- electron-volt
label = "اِلؠکٹرٛان وولٹ",
plural = "اِلؠکٹرٛان وولٹ",
},
Q155009 = { -- Reichsmark
ucode = "ℛℳ",
},
Q206037 = { -- RPM
label = "چَکَر فی مِنَٹ",
ucode = "RPM",
},
Q209426 = { -- arcminute
label = "آرٕک مِنَٹ",
},
Q483261 = { -- atomic mass unit
label = "اؠٹمی ماس یُونِٹ",
ucode = "uma",
},
Q524410 = { -- billion years
label = "اَرَب ؤری",
plural = "اَرَب ؤری",
},
Q550207 = { -- Geary-Khamis dollar
label = "گیری-کھامِس ڈالَر",
plural = "گیری-کھامِس ڈالَر",
ucode = "$",
},
Q712226 = { -- square kilometre
label = "مُرَبہٕ کِلومیٖٹَر",
ucode = "km²",
},
Q743895 = { -- beats per minute
label = "دَڑکہٕ فی مِنَٹ",
plural = "دَڑکہٕ فی مِنَٹ",
ucode = "ppm",
},
Q829073 = { -- arcsecond
label = "آرٕک سؠکَنٛڈ",
ucode = "″",
},
Q1463969 = { -- watt per meter-kelvin
label = "واٹ فی میٖٹَر کؠلوِن",
ucode = "W/(m·K)",
},
Q2080811 = { -- volume fraction
label = "حَجٕم فیٖصَد",
plural = "حَجٕم فیٖصَد",
ucode = "%",
},
Q3085309 = { -- joule per kg-kelvin
label = "جوٗل فی کِلِوگرام کؠلوِن",
ucode = "J/Kg·K",
},
Q6859652 = { -- mmHg
label = "مِلی میٖٹَر مَرکٔری",
ucode = "mm Hg",
},
Q20966435 = { -- ampere per V-m
label = "اؠمپیٖر فی وولٹ میٖٹَر",
plural = "اؠمپیٖر فی وولٹ میٖٹَر",
},
Q20966455 = { -- joule per mol-kelvin
label = "جوٗل فی مول کؠلوِن",
ucode = "J/mol·K",
},
Q21127659 = { -- g/100g solvent
label = "گِرام فی 100 گِرام سولوؠنٛٹ",
ucode = "g/100 g",
},
Q23977060 = { -- dB re 1pW
ucode = "dB re 1pW",
},
Q24564698 = { -- years (age)
label = "ؤری",
plural = "ؤری",
},
Q28739766 = { -- coulomb-meter
label = "کوٗلَم میٖٹَر",
ucode = "C·m",
},
}
local function getUnit(amount, label, unitID, code, symbol)
if label == nil then return unitID end
local id_data = wikidata_units[unitID] or {}
local unit_text = ''
if code then
unit_text = id_data.ucode or symbol or id_data.label or label
elseif amount == "1" then
unit_text = id_data.label or label or unitID
else
-- Removed Catalan flexió dependency to prevent fatal crashes.
-- Defaults to Kashmiri plural (if defined) or singular label.
unit_text = id_data.plural or id_data.label or label
end
return unit_text
end
local convert_default = {
Q218593 = "Q174789", -- in > mm
Q3710 = "Q174728", -- ft > cm
Q482798 = "Q11573", -- yd > m
Q253276 = "Q828224", -- mi > km
Q232291 = "Q712226", -- mi² > km²
Q128822 = "Q180154", -- nus > km/h
Q100995 = "Q11570", -- lb > kg
Q48013 = "Q41803", -- oz > g
}
-- fraction values are saved in Wikidata as decimal numbers, e.g. P6757
-- this helper function restores the fracion notation with 1 as numerator
local function fraction1(decimal)
decimal = tonumber(decimal)
if decimal >= 1 then
return decimal
end
local precision = 1E-15
local z = decimal
local predenum = 0
local sc, num
local denum = 1
repeat
z = 1 / (z - math.floor(z))
sc = denum
denum = denum * math.floor(z) + predenum
predenum = sc
num = math.ceil(decimal * denum)
until ((math.abs(decimal - (num / denum)) < precision) or (z == math.floor(z)) or num == 1)
return num .. '/' .. denum
end
return {
getUnit = getUnit,
convert_default = convert_default,
fraction1 = fraction1
}
2udwv3khm15c7gd0ylmcas239hjvqjl
2020 اَمریٖکی صٔدرٲتی چُناو
0
31107
142929
2026-06-26T09:58:12Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1359593264|2020 United States presidential election]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
142929
wikitext
text/x-wiki
ریاستہائے متحدَس منٛز گٔیہِ 3 نومبر 2020 صدارتی انتخابات۔ [a] سٲبقہٕ نائب صدر جو بائیڈن تہٕ کیلیفورنیا جونیئر سینیٹر کملا ہیرس سٕنزِ ڈیموکریٹک ٹکٹن دِژ موجودہ ریپبلکن صدر ڈونلڈ ٹرمپ تہٕ نائب صدر مائیک پینس شکست۔ [9] انتخابس منٛز آو 1900 پتہٕ فیصد کہ لحاظہٕ ساروی کھوتہٕ زیادٕ ووٹرن ہُنٛد تعداد وچھنہٕ۔ بائیڈنَس مِلے 81 لَچھ کھۄتہٕ زِیٛادٕ ووٹ،[10] یُس امریکی تٲریخَس منٛز کُنہِ صدارتی امیدوارَس خٲطرٕ وُنیُک تام ساروٕے کھۄتہٕ زِیٛادٕ ووٹ چھُ۔
64j4exigiezb9hycz4p6to38bi104m6
142930
142929
2026-06-26T09:58:42Z
آیات محراج
11062
/* */
142930
wikitext
text/x-wiki
{{Infobox election}}
ریاستہائے متحدَس منٛز گٔیہِ 3 نومبر 2020 صدارتی انتخابات۔ [a] سٲبقہٕ نائب صدر جو بائیڈن تہٕ کیلیفورنیا جونیئر سینیٹر کملا ہیرس سٕنزِ ڈیموکریٹک ٹکٹن دِژ موجودہ ریپبلکن صدر ڈونلڈ ٹرمپ تہٕ نائب صدر مائیک پینس شکست۔ [9] انتخابس منٛز آو 1900 پتہٕ فیصد کہ لحاظہٕ ساروی کھوتہٕ زیادٕ ووٹرن ہُنٛد تعداد وچھنہٕ۔ بائیڈنَس مِلے 81 لَچھ کھۄتہٕ زِیٛادٕ ووٹ،[10] یُس امریکی تٲریخَس منٛز کُنہِ صدارتی امیدوارَس خٲطرٕ وُنیُک تام ساروٕے کھۄتہٕ زِیٛادٕ ووٹ چھُ۔
rf4tgymk9k1mcu2lm3mlrclybji5br0